【发布时间】:2011-02-22 21:01:18
【问题描述】:
我有以下tiles-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,或者如果它不存在则错误页面?)
谢谢!
编辑:我想做的更多细节:
现在的情况: 对于我的 webapp 的每个新页面,我都必须在我的 tiles-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”)。
我该怎么做?
【问题讨论】:
-
@tsegay :我用更多信息编辑了我的初始帖子。谢谢。
-
您找到解决方案了吗?
标签: spring-mvc jakarta-ee tiles tiles2