jsp - 使用 Apache Tiles 包含部分磁贴?

标签 jsp partial-views velocity tiles freemarker

我在 Tiles 上遇到了困难。

我有一个有很多 View 的 webapp,所有这些都是围绕一个模板组成的。模板有大约三四个“占位符”,对于每个 View ,不同的、动态生成的内容应该放在正确的占位符中。

当我用 Tiles 定义一个新 View 时,我需要创建多个 JSP 文件——每个都有一个占位符的内容。然后我需要更新一个巨大的 XML 文件,其中有很多看起来一样的条目。

我正在寻找一种解决方案,它允许我在同一个文件中声明所有这些占位符的内容,并将该文件部分包含到模板中(每个片段都包含在其占位符中)。

我也在研究 Velocity 和 FreeMarker,但其中任何一个似乎都没有部分包含功能。

我在这里有什么选择?我愿意考虑改变框架,只是为了让创建另一个 View 变得不那么乏味。

谢谢!

最佳答案

我相信你的 xml 文件很大的原因是因为你可能没有扩展默认模板如下

这应该是您的基本模板:

<definition name="app.base" template="/WEB-INF/templates/default.jsp">
   <put-attribute name="title" value="Not Found" />
   <put-attribute name="header" value="/WEB-INF/tiles/header.jsp" />
   <put-attribute name="body" value="/WEB-INF/tiles/body.jsp" />
   <put-attribute name="footer" value="/WEB-INF/tiles/footer.jsp" />
   <put-list-attribute name="stylesheets">
        <add-attribute value="/static/public/css/bootstrap.min.css" />          
        <add-attribute value="/static/protected/css/header.css" />
        <add-attribute value="/static/protected/css/footer.css" />
   </put-list-attribute>
   <put-list-attribute name="javascripts">
        <add-attribute value="/static/public/js/jquery-2.1.4.min.js" />
        <add-attribute value="/static/public/js/bootstrap.js" />
   </put-list-attribute>    
</definition>

现在您已经有了一个基本模板,您可以按如下方式扩展它:
<definition name="home" extends="app.base">
   <put-attribute name="title" value="Home Page" />
   <put-attribute name="body" value="/WEB-INF/tiles/home.jsp" />
   <put-list-attribute name="stylesheets" inherit="true">
       <add-attribute value="/static/protected/css/whatever.css" />
   </put-list-attribute>
</definition>

这个新页面将包括应用程序库和主页的 CSS 样式表

这是有帮助的吗?

关于jsp - 使用 Apache Tiles 包含部分磁贴?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6627649/

相关文章:

java - 使用项目名称访问主页

java - 通过 jsp (SMTP EXIM) 发送电子邮件时出错

javascript - jquery 创建变量并使用它来加载 - laravel

ruby-on-rails - 带有可选变量的 Rails 部分不起作用

java - 如何获得准确的速度日期差

spring - 如何将速度 1.7 与 Spring 一起使用

spring-boot - 如何为Apache Velocity禁用Spring Boot的自动配置?

java - 预编译jsp文件发生异常

html - 如何构建具有固定宽度/高度和 2 列复选框的字段集

asp.net-mvc - RenderSection 无法在 ASP.NET MVC3 中的部分 View 内工作