传递渲染JSP片段作为参数传递给另一个JSP

问题描述:

我有一个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等)。这可能吗?或者还有其他方法可以使用吗?

好的,看起来好像这样做的方法是在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>