将JSP属性传递给嵌套的jstl标记

时间:2014-09-30 12:27:36

标签: jsp jstl jsp-tags

我设计了一个JSP模板,就像@Will Hartung的好例子(Link),我有 genericpage.tag

 <%@tag description="Overall Page template" pageEncoding="UTF-8"%>
 <%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
 <%@attribute name="header" fragment="true" %>
 <%@attribute name="footer" fragment="true" %>
 <html>
   <body>
     <div id="pageheader">
       <jsp:invoke fragment="header"/>
     </div>
     <div id="body">
       <jsp:doBody/>
     </div>
     <t:page.footer>
       <jsp:invoke fragment="footer"/>
     </t:page.footer>                    
   </body>
 </html>

如您所见,我在 genericpage.tag 中定义了 page.footer.tag

page.footer.tag:

<%@attribute name="footer" fragment="true" %>
<div id="footer">
    <jsp:invoke fragment="footer"/>
</div>

在我的JSP页面中我有:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="t" tagdir="/WEB-INF/tags" %>
<t:genericpage>
    <jsp:attribute name="header">
      <h1>Welcome</h1>
    </jsp:attribute>
    <jsp:attribute name="footer">
      <p id="copyright">Copyright 1927, Future Bits When There Be Bits Inc.</p>
    </jsp:attribute>
    <jsp:body>
       <p>Some Content</p>        
    </jsp:body>
</t:genericpage>

标题属性可以正常工作,但是当我将页脚属性发送到其他标记页面(page.footer.tag)时,它不起作用

另一方面,当我在 genericpage.tag 中使用它时,页眉和页脚属性工作正常,但它们在 page.footer.tag ,我将其用于 genericpage.tag

1 个答案:

答案 0 :(得分:0)

你也可以这样做。  在你的主要jsp你需要把这段代码:

&LT; jsp:include page =“example.jsp”&gt;

example.jsp:

&LT; %@ page contentType =“text / html; charset = windows-1252”%&gt;

和您的代码..