在我的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