JSP 中的枚举

2022-09-03 01:04:31

有没有办法在不使用脚本的情况下在 JSP 中使用 Enum 值。

例如:

package com.example;

public enum Direction {
    ASC,
    DESC
}

所以在JSP中我想做这样的事情

<c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">...

答案 1

您可以将枚举中某个方向的 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页面,即使用于比较等基本内容。


答案 2

我想可以这样完成

<c:set var="ASC" value="<%=Direction.ASC%>"/>
<c:if test="${foo.direction == ASC}"></c:if>

优点是当我们重构时,它也会在这里反映出来。