Domanda

    

Questa domanda ha già una risposta qui:

    
            
  •              Come fare riferimento a costanti in EL?                                      12 risposte                          
  •     
    

Esiste un modo per usare i valori Enum all'interno di un JSP senza usare scriptlet.

es.

package com.example;

public enum Direction {
    ASC,
    DESC
}

quindi nel JSP voglio fare qualcosa del genere

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

Soluzione

Potresti implementare il testo web-friendly per una direzione all'interno dell'enum come un campo:


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

ma ciò mescola la vista e il modello, anche se per usi semplici può essere indipendente dalla vista (" Ascendente " ;, " Descending " ;, etc).

A meno che non ti piaccia mettere Java direttamente nelle tue pagine JSP, anche se usato per cose di base come i confronti.

Altri suggerimenti

Puoi semplicemente controllare il valore enum come stringa:

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

Immagino che possa essere fatto in questo modo

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

il vantaggio è che quando eseguiamo il refactoring verrà rinominato anche qui

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top