Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP中的枚举_Java_Jsp_Jstl - Fatal编程技术网

Java JSP中的枚举

Java JSP中的枚举,java,jsp,jstl,Java,Jsp,Jstl,有没有一种方法可以在JSP中使用枚举值而不使用Scriptlet e、 g 因此,在JSP中,我想做如下事情 <c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">... 。。。 您可以将枚举中的方向的web友好文本作为字段实现: <%@ page import="com.example.Direction" %> ... <p>Direction is <%=foo.dire

有没有一种方法可以在JSP中使用枚举值而不使用Scriptlet

e、 g

因此,在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>


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

使用硬编码字符串是一个坏主意无效硬编码字符串。如果更改了枚举,该怎么办?也许这不是最好的解决方案。但它仍然比JSP页面中庞大的Java代码要好,为什么要取消注释呢?请说明原因。如果是因为JSP表达式,请查看接受的答案,他也在使用它
<c:set var="ASC" value="<%=Direction.ASC%>"/>
<c:if test="${foo.direction == ASC}"></c:if>