2016-05-16 107 views
0

我有一個JSP片段,看起來像這樣:傳遞渲染JSP片段作爲參數傳遞給另一個JSP

<div> 
    <div> 
     <!-- 1 --> 
     <h1>Hello Everyone!</h1> 
    </div> 
    <div> 
     <!-- 2 --> 
     <jsp:include page="./anotherJspFragment.jsp"> 
      <jsp:param name="someName" value="someValue"/> 
     </jsp:include> 
    </div> 
</div> 

該片段在JSP頁面中反覆幾次 - 它已被複制和粘貼,用只有標有'1'和'2'的部分在每次出現之間發生變化。

該片段的每個實例include是一個不同的JSP頁面,它們具有不同的參數。

一些看起來像這樣:

 <jsp:include page="./firstJspFragment.jsp" /> 

而另一些人是這樣的:

 <jsp:include page="./secondJspFragment.jsp"> 
      <jsp:param name="someName1" value="someValue1"/> 
      <jsp:param name="someName2" value="someValue2"/> 
     </jsp:include> 

我想創建一個包含所有樣板標記,我可以使用可重複使用的JSP片段減少重複。此JSP片段需要將渲染的JSP片段作爲參數(firstJspFragment.jspsecondJspFragment.jsp等)。這可能嗎?或者還有其他方法可以使用嗎?

回答

0

好的,看起來好像這樣做的方法是在WEB-INF/tags中創建一個標籤,例如: myTag.tag其中包含樣板標記

http://docs.oracle.com/javaee/1.4/tutorial/doc/JSPTags5.html

然後,您可以通過在所呈現的頁面爲體,例如

<test:myTag title="Hello Everyone"> 
    <jsp:include page="./firstJspFragment.jsp" /> 
</test:myTag> 

該JSP片段隨後將被呈現在標籤中出現<jsp:doBody />的點處,例如,

<%@ attribute name="title" required="true" %> 

<div> 
    <div> 
     <!-- 1 --> 
     <h1>${title}</h1> 
    </div> 
    <div> 
     <!-- 2 --> 
     <jsp:doBody /> 
    </div> 
</div> 
相關問題