[英]Updating Spring from 3.0.x to 3.1.2 causes form select box to not display list tostring
最近,我將Spring從3.0.5升級到了3.1.2。 一切正常,除了我的表單上的所有選擇框都顯示枚舉值,而不是先前顯示的toString值。
我的列舉是:
public enum StateType {
ALABAMA("AL", 1, "Alabama"),
etc
StateType(String abbreviation, int code, String displayText) {
this.abbreviation = abbreviation;
this.code = code;
this.displayText = displayText;
}
public String toString() {
return displayText;
}
}
我的控制器將具有以下內容:
@ModelAttribute("stateList")
public static StateType[] populateStateList() {
return StateType.values();
}
我的表單有以下代碼段:
<form:select path="state" id="state" items="${stateList}" style="width:12em" dojoType="dijit.form.FilteringSelect"/>
所有這些都在3.0.5中起作用。 由於某些原因,在3.1.2中從未調用過toString。 屏幕上的我的選擇框顯示枚舉常量(ALABAMA)。
有什么想法改變了嗎? 我使用maven跟蹤我的依賴關系。 我要做的只是更新我的spring版本常數。 也許我需要更新其他依賴項?
謝謝
我實現了以下解決方案。 可以,因為我有一個較小的項目。 對於大型項目,這可能是不可接受的。
為我的枚舉添加了一個吸氣劑:
public enum StateType {
ALABAMA("AL", 1, "Alabama"),
etc
StateType(String abbreviation, int code, String displayText) {
this.abbreviation = abbreviation;
this.code = code;
this.displayText = displayText;
}
public String getDisplayText() {
return this.displayText;
}
public String toString() {
return displayText;
}
}
在表單上添加以下內容:
<form:select path="state" id="state" items="${stateList}" itemLabel="displayText" style="width:12em" dojoType="dijit.form.FilteringSelect"/>
現在這可以按預期工作。 就像我提到的那樣,這種解決方法對於大型項目可能是不可接受的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.