在jsp页面中包含JSP文件

时间:2015-11-17 22:42:58

标签: java spring jsp

我使用J2EE构建网站(使用spring和JSP)。我有多个页面,如client.jsp和user.jsp。每个页面都有标题,内容和页脚。

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

要包括我做的事情:

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

但如果此标头不存在,我想加载一个通用的header.jsp。

这些页眉/页脚使用来自$ {image}等模型的变量,或者等等!!

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

谢谢!

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

为什么不只是JSTL标记<c:if>(条件,如<c:if test='${someCondition}",然后<jsp:include>?如果您有任何参数传递,您甚至可以包含<jsp:param>进入包含的JSP。

示例:

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