In JSP EL enum Wert immer leer [duplizieren]

8

Beim Versuch, eine EL-Bedingung zu erhalten, habe ich festgestellt, dass Enum-Werte vollständig ignoriert werden. Dies scheint mir der Spezifikation zu widersprechen.

%Vor%

Zu meiner Überraschung bewerten diese alle leer . Warum wird die Enum-Klasse nicht erkannt? Dies geschieht in einer aktuellen stabilen Tomcat-Instanz.

Kann dies ein Klassenpfadproblem sein? Die Enum wird erfolgreich in Controller-Code, aber nirgendwo sonst in JSPs verwendet. Es wird in einem Jar im Verzeichnis lib der Bereitstellung bereitgestellt.

UPDATE:

Meine Absicht ist es, eine mitgelieferte Ganzzahl mit einer Enum-Eigenschaft wie folgt zu vergleichen:

%Vor%

Leider kann der geprüfte Wert nicht geändert werden und bleibt ein Integer. Die Enum sieht folgendermaßen aus (vereinfacht):

%Vor%

Ich möchte vermeiden, den Integer-Wert von FAIL usw. hart zu codieren und stattdessen die Enumeration für den Vergleich zu verwenden.

    
sibidiba 05.01.2011, 16:42
quelle

3 Antworten

15

Das liegt daran, dass EL in seiner aktuellen Version weder den Zugriff auf Enums noch den Aufruf von Enum-Konstanten unterstützt. Diese Unterstützung ist nur für EL 3.0 verfügbar.

Es ist unklar, was Ihre Absicht ist, aber es ist gut zu wissen, dass Sie Enum-Eigenschaften als String in EL vergleichen können. Sie werden nämlich als String aufgelöst.

Angenommen, Sie haben eine Bean, die wie folgt aussieht:

%Vor%

Dann könnten Sie die Bedingung Status.FAILED wie folgt testen:

%Vor%

Siehe auch:

BalusC 05.01.2011, 16:46
quelle
7

Wie BalusC angegeben hat, können Sie mit EL nicht auf enums zugreifen. Sie können dies jedoch tun:

%Vor%

Es wäre ideal, wenn bookingInformation.bookingStatus eine Enumeration und kein Int wäre. Wenn Sie Ihre App jedoch aufgrund ihrer Legacy-Eigenschaft nicht in Frage stellen, sollte das obige Beispiel helfen. Für jeden Wert der Enumeration benötigen Sie <c:set/> (in Ihrem Beispiel sind es nur zwei).

    
Steven Benitez 08.01.2011 18:20
quelle
1

Sie müssen die enum-Klasse in Ihre jsp-Seite importieren. Soweit Sie es importieren, können Sie sich darauf beziehen. Ich habe ein Beispiel unten geschrieben.

Meine enum ist der WebSettingType.

%Vor%

Ich habe die websettings.jsp-Seite, die eine Tag-Seite usw. verwendet.

%Vor%     
George Siggouroglou 26.04.2016 20:01
quelle

Tags und Links