2008-10-02 11 views
14

Czy istnieje sposób używania wartości wyliczeń wewnątrz strony JSP bez użycia skryptletów.Wyliczenie wewnątrz JSP

np.

package com.example; 

public enum Direction { 
    ASC, 
    DESC 
} 

tak w JSP Chcę zrobić coś takiego

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

Odpowiedz

17

Można wdrożyć tekst przyjaznym internetowej dla kierunku w obrębie enum jako pola:

 

<%@ 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> 
<% } %> 
 

ale to miesza widok i model, chociaż dla prostych zastosowań może być niezależny od widoku ("Rosnąco", "Malejąco" itd.).

Chyba że nie lubisz umieszczać prostej Java na stronach JSP, nawet jeśli jest używana do podstawowych rzeczy, takich jak porównania.

1

można po prostu sprawdzić na wartość enum jako ciąg znaków:

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

Korzystanie z zakodowanego na stałe ciągu to zły pomysł. – sjain

+0

Unikaj zakodowanych na sztywno napisów. Co się stanie, jeśli twoje wyliczenie zostanie zmienione? – user2447161

+0

Być może nie jest to najlepsze rozwiązanie. Ale nadal jest lepszy niż obszerny kod Java na stronie JSP. – saidfagan

-1

Można to zrobić tak Chyba

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

zaletą jest to, kiedy byłaby to zmiana nazwy tutaj zbyt

+0

Dlaczego go odesłałeś? Proszę skomentować powód. –

+0

Jeśli jest to spowodowane tym, że wyrażenie JSP uwzględnia akceptowaną odpowiedź, to również go używa –