传递渲染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.jsp
或secondJspFragment.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>