web-dev-qa-db-ja.com

JSP内の列挙型

スクリプトレットを使用せずにJSP内で列挙値を使用する方法はありますか?.

例えば.

package com.example;

public enum Direction {
    ASC,
    DESC
}

だからJSPで私はこのようなことをしたい

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

列挙型内の方向の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>
<% } %>

ただし、これはビューとモデルを混合しますが、単純な使用ではビューに依存しない場合があります(「昇順」、「降順」など)。

比較などの基本的な目的で使用する場合でも、JSPページにストレートJavaを入れるのが嫌いでない限り。

18
JeeBee

列挙値を文字列として簡単に確認できます。

<c:if test="${foo.direction == 'ASC'}">...
1
Arnoud

このようにできると思います

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

利点は、リファクタリングするとここでも名前が変更されることです

1
Mohammed Aslam