我有一个如下所示的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
等)。这可能吗?或者我可以使用其他方法吗?
答案 0 :(得分: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:doBody />
出现的标记中的点处呈现此JSP片段,例如
<%@ attribute name="title" required="true" %>
<div>
<div>
<!-- 1 -->
<h1>${title}</h1>
</div>
<div>
<!-- 2 -->
<jsp:doBody />
</div>
</div>