JSTL EL und Enums

Status
Nicht offen für weitere Antworten.

byte

Top Contributor
Moin,

es gelingt mir nicht, Member von Enum-Variablen in der JSP auszugeben.

Die Enum sieht folgendermaßen aus:

Code:
enum State {
    NEW      ("offen"),
    APPROVED ("genehmigt"),
    DECLINED ("abgelehnt"),
    DEFERED  ("zurückgestellt");
        
    private String label;
        
    private State(String label) {
        this.label = label;
    }
        
    @Override
    public String toString() {
        return label;
    }

    public String getLabel() {
        return label;
    }
}

Folgender Code schreibt mir die Konstante in die JSP (also z.B. NEW), obwohl die toString() überschrieben ist:
Code:
${ element.state }

Folgender Code liefert eine Exception:
Code:
${ element.state.label }
Code:
javax.el.PropertyNotFoundException: Property 'label' not readable on type java.lang.String

state ist auf jeden Fall eine Variable vom Enum-Typ State, also keine Ahnung, was diese Meldung soll.

Jemand eine Idee, wie ich per JSTL EL an das Label komme?

TIA byto
 
so weit ich weiß kann JSTL mit Enums nicht umgehen. Musst du also irgendwie nen Wrapper für bauen....
 
Hm ok.

Hab jetzt diesen Workaround gemacht:

Klasse:
Code:
public String getLabel() {
    return state.toString();
}

JSP:
Code:
${ element.label }
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben