2014-10-08 59 views
1

我为我的JSP页面创建了一个方便的标记库。它看起来像这样:将JSP嵌入到自定义JSP标记范围内

<myTag:getContent> 

    <div id="metadata"> 
     <myTag:printContent arg="meta"/> 
    </div> 
    <div id="data"> 
     <myTag:printContent arg="data"/> 
    </div> 

</myTag> 

的getContent包含初始化并设置了几个变量RESTful Web服务,这样,当我使用printContent各自的参数,它只是打印的变量,而不是重新获取内容。

的问题是,在实际应用中,调用打印内容深躺在里面不同的页面剪:

<myTag:getContent> 

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

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

</myTag> 

我已在myTag库在每一页的顶部定义,但我得到:

java.lang.NullPointerException 
内部的JSP

在 “myTag:printContent”

我该怎么办?考虑到真正的内部jsp页面有其他标记库和逻辑,这甚至是可能的吗?

的的getContent是.TLD(标签库描述符)内的下列属性

<body-content>JSP</body-content> 

回答

0

那么它看起来好老退一步,看看问题是真正的在这里。我将jsp:includes转换为包含指令。对于那些谁不熟悉:

<myTag:getContent> 
    <%@include file=".../.../.../this.jsp"%> 
    <@%include file=".../.../.../that.jsp"%> 
</myTag> 

这工作,因为现在的范围是相关的包括这里是翻译时间与JSP静:包括是在请求时动态。