如何知道jsp标记属性是否可用于EL?

如何知道jsp标记属性是否可用于EL?,jsp,jstl,el,Jsp,Jstl,El,我的jsp中有以下代码: <% pageContext.setAttribute("warnings",Globals.WARNING_MESSAGES); %> <c:choose> <c:when test="${requestScope[pageScope.warnings] or sessionScope[pageScope.warnings]}"> <html:errors header="warnings.header

我的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中删除变量时,我希望使用相同的机制,但是
属性似乎拒绝解释我的脚本变量,这破坏了引用我的常量声明所做的所有努力。我可以使用jsp scriptlet来解决这个问题,但是有没有“更好”的方法呢?

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

<c:if test="${empty pageScope.warnings}"> //do something </c:if> //做点什么
如果未定义pageScope.warnings(null),则返回true。

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

<c:if test="${empty pageScope.warnings}"> //do something </c:if> //做点什么
如果未定义pageScope.warnings(null),则返回true。

很抱歉,
${empty pageContext.errorData}

给出了null指针异常。所以它似乎不是答案。很抱歉,但是
${empty pageContext.errorData}

给出了一个空指针异常。所以答案似乎不是空的。