【问题标题】:Include JSP files in a jsp page在 jsp 页面中包含 JSP 文件
【发布时间】:2016-02-19 12:10:14
【问题描述】:

我正在使用 J2EE(使用 spring 和 JSP)构建一个网站。我有多个页面,例如 client.jsp 和 user.jsp。每个页面都有页眉、内容和页脚。

所以,我想做的是在每个 jsp 文件(客户端或用户)中包含页眉和页脚,但每个文件都有一个特定的页眉和页脚。比如说,header_client.jsp 和 header_footer.jsp。

为了包含这个我正在做的事情:

<%@ include file="/header_client.jsp" %>

但是如果这个头文件不存在,我想加载一个通用的 header.jsp。

这些页眉/页脚使用模型中的变量,例如 ${image},等等!

如何在包含和导入一个或另一个之前测试特定的页眉/页脚是否存在?

谢谢!

【问题讨论】:

    标签: java spring jsp


    【解决方案1】:

    我建议使用/创建模板并将大部分配置保留在tiles.xml

    示例代码

    <definition name="mytemplate" template="/WEB-INF/jsp/common/my_template.jsp">
            <put-attribute name="title" value="" />
            <put-attribute name="header" value="/WEB-INF/jsp/common/header.jsp" />
            <put-attribute name="body" value="" />
            <put-attribute name="footer" value="/WEB-INF/jsp/common/footer.jsp" />          
    </definition>
    

    定义使用上面创建的模板

    <definition name="myPage" extends="mytemplate">
            <put-attribute name="title" value="My Page" />
            <put-attribute name="body" value="/WEB-INF/jsp/common/my.jsp" />
        </definition>
    

    【讨论】:

      【解决方案2】:

      为什么不只是 JSTL 标记 &lt;c:if&gt;(带有条件,例如 &lt;c:if test='${someCondition}",然后是 &lt;jsp:include&gt;?如果您有任何参数要传递给包含的 JSP,您甚至可以包含 &lt;jsp:param&gt;

      例子:

      <c:set var="myVar" value="someValue" />
      ..
      <c:if test="${condition}">
        <jsp:include page="newPage.jsp" />
      </c:if>
      

      【讨论】:

      • 我不想这样做,因为 header*.jsp 可以有多个参数,我希望这是“通用的”。
      猜你喜欢
      • 2011-12-01
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多