在我的Grails應用程序,我有這樣的枚舉:Grails的綁定集合枚舉
public enum RelationshipStatus{
Single_Never_Married,
Separated,
Divorced,
Widowed;
}
我定義這個命令對象:
class MyCommand {
List<RelationshipStatus> relationshipStatuses
}
,我在我的控制器動作
一個使用def myAction = {MyCommand myCommand ->
}
當我提交一個請求到這個動作的參數
user.relationshipStatuses=Separated&user.relationshipStatuses=Divorced
我預計myCommand.relationshipStatuses
將包含RelationshipStatus.Separated
和RelationshipStatus.Divorced
,但實際上它是空的。
我的理解是,Grails根據枚舉的名稱自動執行請求參數 - >枚舉轉換。只要將它區分它不,我試圖定義一個屬性編輯器,做這種轉換:
class RelationshipStatusEnumEditor extends PropertyEditorSupport {
public String getAsText() {
value.name()
}
public void setAsText(String text) {
RelationshipStatus.valueOf(text)
}
}
我註冊這個編輯器使用Grails/Spring和再次嘗試,但結果是一樣的。是否可以將請求參數綁定到Enum的Collection?
我相信,Grails不知道如何填充你的列表,因爲它放棄了列表類型(List)上的信息。我不確定,如果可能的話。 –
sbglasius