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.
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:
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).
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%