[英]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.