Ich verwende Spring für ein HTML-Formular. Eines der Felder ist ein enum
und daher möchte ich eine HTML-Dropdown-Liste (<option>
-Tag). Der Name meines Namens ist anders als der toString()
Wert. Zum Beispiel:Verwenden Sie das Spring options-Tag, um den toString-Wert der Enumeration anzuzeigen
public enum Size {
SMALL("Small"), LARGE("Large"), VERY_LARGE("Very large");
private final String displayName;
private Size(String displayName) {
this.displayName = displayName;
}
public String toString() {
return displayName;
}
}
Ich möchte der Benutzer den toString()
Wert sehen. Normalerweise wird dies unter Verwendung des itemLabel
des Spring Options-Tags erreicht.
<form:options items="${enumValues}" itemLabel="beanProperty" />
Aber toString()
ist kein Bean-Eigenschaft, da es nicht mit „get“ beginnt. Gibt es eine Möglichkeit, itemLabel
den toString-Wert zu verwenden, ohne einen Getter erstellen zu müssen?
Nie zu spät: http://xkcd.com/979/ –
Dies verwendet, um in 3.0 zu arbeiten, wurde aber seit 3.1 gebrochen, siehe https://jira.spring.io/browse/SPR-9214 und https://jira.spring.io/browse/SPR-10281 –