2015-11-17 70 views
1

我正在使用J2EE构建网站(使用spring和JSP)。我有多个页面,如client.jsp和user.jsp。每个页面都有一个标题,一个内容和一个页脚。将JSP文件包含在jsp页面中

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

包括这个我做:

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

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

这些页眉/页脚使用像$ {image}这样的模型中的变量,或者这样!

如何在include和import之前测试是否存在特定的页眉/页脚?

谢谢!

回答

1

我会建议使用/创建模板,并使用上述

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

为什么不创建的模板保持大部分配置在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> 

定义只是JSTL标签<c:if> (条件如<c:if test='${someCondition}",然后<jsp:include>?如果您有任何参数传递给包含的JSP,则甚至可以包含<jsp:param>

例子:

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

我不想这样做,因为头* .JSP可以有多个参数,我想这是“通用”。 – amachado