簡體   English   中英

在自定義JSP Tag范圍內嵌套JSP

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM