2014-10-08 57 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靜:包括是在請求時動態。