代码之家  ›  专栏  ›  技术社区  ›  talg

JSP中的枚举[重复]

  •  14
  • talg  · 技术社区  · 16 年前

    这个问题已经有了答案:

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

    例如

    package com.example;
    
    public enum Direction {
        ASC,
        DESC
    }
    

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

    <c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">...
    
    3 回复  |  直到 7 年前
        1
  •  18
  •   JeeBee    16 年前

    可以将枚举内的方向的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
  •  1
  •   Arnoud    13 年前

    您可以简单地将枚举值作为字符串进行检查:

    <c:if test="${foo.direction == 'ASC'}">...
    
        3
  •  0
  •   Mohammed Aslam    7 年前

    我想可以这样做

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

    好处是当我们重构时,它也将在此处重命名