【发布时间】:2014-09-09 10:06:56
【问题描述】:
我正在开发一个使用多选字段的项目。
我的域类定义为:
class RoomWanted{
Set<MateAgeRange> mateAgeRanges
}
然后:
public enum MateAgeRange {
TWENTIES('18-29')
,THIRTIES('30-39')
,FOURTIES("40-49")
,FIFTIES("50-59")
,SIXTIES("60+")
final String value
private MateAgeRange(String value) {
this.value = value
}
String toString() { value }
String getKey() { name() }
static belongsTo=[roomWanted:RoomWanted]
}
我的命令对象是:
class RoomWantedDetailsCommand implements Serializable {
Set<MateAgeRange> mateAgeRanges
}
我想要创建页面、编辑页面、显示页面
这是我的创建页面
<g:select name="mateAgeRanges" multiple="true" from="${MateAgeRange?.values()}" optionKey="key" />
我的命令对象'cmd'获取值
print cmd.mateAgeRanges
给出值 [30-39, 50-59] 当我选择这两个时。
但它不绑定到域类中的字段。 在展示页面中, 如果我使用 cmd.mateAgeRanges 它返回 []。
【问题讨论】:
-
为什么你有一个已经由域类表示的东西的命令对象?
-
在控制器中用于简化在客户端创建、编辑和验证数据的过程。