我正在尝试比较JSTL中的两个枚举值。在我的Tomcat工作正常,但是当我在Jboss中部署应用程序时没有工作。
枚举类:
public enum Status {
VALID,
NOT_VALID,
OTHER,
;
public String getName() {
return name();
}
}
一块JSP:
...
<%@ page import="my.package.Status" %>
...
<c:choose>
<c:when test="${myVar.status.toString() == Status.VALIDAD.toString()}">
<c:set var="clase" value="green-text" />
</c:when>
<c:when test="${myVar.status.toString() == Status.NOT_VALIDADO.toString()}">
<c:set var="clase" value="yellow-text" />
</c:when>
<c:otherwise>
<c:set var="clase" value="red-text" />
</c:otherwise>
</c:choose>
<span class="${clase}">
<%-- Output tests --%>
[${myVar.status}] - <%-- Works in Tomcat and Jboss --%>
[${Status.VALIDAD.toString()}] - <%-- Works in Tomcat, empty in Jboss --%>
[${Status.VALIDAD}] - <%-- Works in Tomcat, empty in Jboss --%>
[${Status.VALIDAD.name}] - <%-- Works in Tomcat, empty in Jboss --%>
[${Status.VALIDAD.name()}] <%-- Works in Tomcat, empty in Jboss --%>
</span>
我已经this和this了,但我不明白,因为在Tomcat工作而不是在Jboss工作。
有些想法?
编辑:
我尝试使用包含库jboss-el-api_3.0_spec-1.0.6.Final-redhat-1.jar
的Jboss EAP 7.0.0,但仍然无法正常工作。我还测试了Java 1.7和Java 1.8。
答案 0 :(得分:0)
您的JBoss很可能使用的是另一个JSP / Servlet API版本而不是Tomcat。
从另一个与此相关的问题:
JSP / Servet 2.4不支持EL中的方法调用,只支持 属性。