【问题标题】:How to automate body import with Apache Tiles and Spring MVC如何使用 Apache Tiles 和 Spring MVC 自动导入正文
【发布时间】: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


【解决方案1】:

查看动态图块示例on the springbyexample.org page。 DynamicTilesView 完全符合您的要求(参见示例配置here)。完整的动态图块示例可以在here on github

找到

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多