2015-11-17 112 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