[英]Nesting JSPs inside custom JSP Tag scope
我已经为我的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>
好吧,似乎好旧的退后一步,看起来这里的问题是真实的。 我将jsp:includes切换为指令include。 对于不熟悉的人:
<myTag:getContent>
<%@include file=".../.../.../this.jsp"%>
<@%include file=".../.../.../that.jsp"%>
</myTag>
之所以可行,是因为现在范围是相关的,因为这里的include在转换时是静态的,而jsp:include在请求时是动态的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.