【问题标题】:Nesting JSPs inside custom JSP Tag scope在自定义 JSP 标记范围内嵌套 JSP
【发布时间】:2014-10-08 00:59:32
【问题描述】:

我为我的 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

在“myTag:printContent”的内部 JSP 中

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

getContent 是 .tld(标签库描述符)中的以下属性

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

【问题讨论】:

    标签: java jsp taglib


    【解决方案1】:

    好吧,看起来不错的老退步和外观问题在这里是真实存在的。我将 jsp:includes 切换为指令包含。对于不熟悉的人:

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

    这是可行的,因为现在范围是相关的,因为这里的 include 在翻译时是静态的,而 jsp:include 在请求时是动态的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多