有没有办法在不使用scriptlet的情况下在JSP中使用Enum值。
e.g。
package com.example;
public enum Direction {
ASC,
DESC
}
所以在JSP中我想做类似这样的事情
<c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">...
答案 0 :(得分:18)
您可以将enum中方向的网络友好文本实现为字段:
<%@ page import="com.example.Direction" %>
...
<p>Direction is <%=foo.direction.getFriendlyName()%></p>
<% if (foo.direction == Direction.ASC) { %>
<p>That means you're going to heaven!</p>
<% } %>
但是它混合了视图和模型,但是对于简单的用途,它可以是视图独立的(“升序”,“降序”等)。
除非您不喜欢将Java直接放入JSP页面,即使用于比较等基本内容。
答案 1 :(得分:1)
您可以简单地将枚举值作为字符串进行检查:
<c:if test="${foo.direction == 'ASC'}">...
答案 2 :(得分:1)
可以这样做我猜
<c:set var="ASC" value="<%=Direction.ASC%>"/>
<c:if test="${foo.direction == ASC}"></c:if>
优点是当我们重构时它也会在这里重命名