有没有一种方法可以在不使用scriptlet的情况下在JSP内部使用Enum值。Enum里面的JSP
例如
package com.example;
public enum Direction {
ASC,
DESC
}
所以在JSP我想要做这样的事情
<c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">...
有没有一种方法可以在不使用scriptlet的情况下在JSP内部使用Enum值。Enum里面的JSP
例如
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>
的好处是,当我们重构它会重命名这里也
使用硬编码字符串是一个坏主意 – sjain 2016-11-25 08:59:51
避免硬编码字符串。如果你的枚举被改变了怎么办? – user2447161 2017-06-22 12:06:03