我使用J2EE构建网站(使用spring和JSP)。我有多个页面,如client.jsp和user.jsp。每个页面都有标题,内容和页脚。
所以,我想要做的是在每个jsp文件(客户端或用户)中包含页眉和页脚,但每个文件都有一个特定的页眉和页脚。比方说,header_client.jsp和header_footer.jsp。
要包括我做的事情:
<%@ include file="/header_client.jsp" %>
但如果此标头不存在,我想加载一个通用的header.jsp。
这些页眉/页脚使用来自$ {image}等模型的变量,或者等等!!
如何在包含和导入一个或其他之前测试是否存在特定的页眉/页脚?
谢谢!
答案 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>