题
这个问题在这里已经有答案了:
- 如何在EL中引用常量? 12 个答案
有没有一种方法可以在 JSP 中使用 Enum 值而不使用 scriptlet。
例如
package com.example;
public enum Direction {
ASC,
DESC
}
所以在JSP中我想做这样的事情
<c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">...
解决方案
您可以将枚举内的方向的 Web 友好文本实现为字段:
<%@ 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 页面中,即使用于比较等基本操作也是如此。
其他提示
您可以简单地检查字符串形式的枚举值:
<c:if test="${foo.direction == 'ASC'}">...
我想可以这样做
<c:set var="ASC" value="<%=Direction.ASC%>"/>
<c:if test="${foo.direction == ASC}"></c:if>
优点是当我们重构时它也会在这里重命名
不隶属于 StackOverflow