如何知道jsp标签属性是否可用于EL?
时间:2020-03-06 15:01:32 来源:igfitidea点击:
我的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删除引用脚本变量的变量时,我想使用相同的机制,但是似乎<c:remove var>属性拒绝解释我的脚本变量,这破坏了所有引用我的精力常量声明。我可以使用jsp scriptlet解决此问题,但是有没有"更好"的方法呢?
解决方案
我不确定我是否理解问题,但我认为我们正在寻找EL的"空"运算符,以测试属性是否存在:
<c:if test="${empty pageScope.warnings}"> //do something </c:if>
如果未定义pageScope.warnings(空),则将返回true。