У меня есть следующий файл tile-def.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="default" template="/WEB-INF/jsp/layout.jsp">
<put-attribute name="title" value="my webapp" />
<put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
<put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" />
<put-attribute name="body" value="/WEB-INF/jsp/hello.jsp" />
<put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" />
</definition>
<definition name="contact" extends="default">
<put-attribute name="body" value="/WEB-INF/jsp/contact.jsp" />
</definition>
<definition name="hello" extends="default">
<put-attribute name="body" value="/WEB-INF/jsp/hello.jsp" />
</definition>
</tiles-definitions>
Как видите, на всех моих страницах меняется только тело.Есть ли способ автоматизировать это?(поэтому он автоматически включает в себя jsp с именем запрашиваемой страницы или страницу с ошибкой, если она не существует?)
Спасибо!
РЕДАКТИРОВАТЬ: Подробнее о том, что я хочуdo:
Как это сейчас: Для каждой новой страницы моего веб-приложения я должен добавить новую в мой tile-def.xml.И каждый раз, единственное, что он делает, это устанавливает тело с моей страницей контента.
Что я хотел бы сделать: просто иметь одно определение по умолчанию, которое автоматически выбирает страницу для отображения, что-то вроде этого:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
<tiles-definitions>
<definition name="default" template="/WEB-INF/jsp/layout.jsp">
<put-attribute name="title" value="my webapp" />
<put-attribute name="header" value="/WEB-INF/jsp/header.jsp" />
<put-attribute name="menu" value="/WEB-INF/jsp/menu.jsp" />
if(myPageName exists){
<put-attribute name="body" value="/WEB-INF/jsp/" + myPageName + ".jsp" />
else{
<put-attribute name="body" value="/WEB-INF/jsp/error404.jsp" />
}
<put-attribute name="footer" value="/WEB-INF/jsp/footer.jsp" />
</definition>
</tiles-definitions>
Где myPageName будет именем запрашиваемой страницы (если URL был "http://www.mysite.com/contact.html",", тогда myPageName было бы "contact". Если это было "http://www.mysite.com/info.html",, тогда myPageName было бы" info ").
Как я могу это сделать?