【问题标题】:How to know if a jsp tag attribute is available for EL?如何知道一个jsp标签属性是否可用于EL?
【发布时间】:2008-10-02 13:20:40
【问题描述】:

我的 jsp 中有以下代码:

<% pageContext.setAttribute("warnings",Globals.WARNING_MESSAGES); %>
<c:choose>
    <c:when test="${requestScope[pageScope.warnings] or sessionScope[pageScope.warnings]}">
        <html:errors header="warnings.header" footer="warnings.footer" prefix="warnings.prefix" suffix="warnings.suffix"/>
        <c:remove var="${pageScope.warnings}" scope="session"/>
    </c:when>
    <c:otherwise>
        <html:errors/>
    </c:otherwise>
</c:choose>

我想知道是否有任何方法(无需深入研究源代码)知道某个属性是否可用于 EL 编码。

在这段代码中,我想使用一个脚本变量定义为我在 pageScope 容器中设置的常量。当我从引用脚本变量的 sessionScope 中删除变量时,我想使用相同的机制,但似乎&lt;c:remove var&gt; 属性拒绝解释我的脚本变量,这破坏了引用我的常量声明的所有努力。我可以使用 jsp scriptlet 来解决这个问题,但是有没有“更好”的方法来解决这个问题?

【问题讨论】:

    标签: jsp jstl el


    【解决方案1】:

    我不确定我是否理解您的问题,但我认为您正在寻找 EL 的“空”运算符来测试属性是否存在:

    //做一点事 如果>

    如果没有定义 pageScope.warnings (null),这将返回 true。

    【讨论】:

    • 抱歉,&lt;p&gt;${empty pageContext.errorData}&lt;/p&gt; 给出了一个空指针异常。所以看起来空洞不是答案。
    猜你喜欢
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2018-01-06
    • 2010-10-11
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多