我有grails 2.0.4 app,我有新的域类,如下所示,其中包含大约50个属性
class Test{
int testField1
int testField2
int testField2
.
.
int testFieldN
}
我想做如下,
Display Value Value to Save in DB
'Excellent' 10
'Good' 8
'Average' 6
'Poor' 4
'Pathetic' 2
我有一个包含所有这些属性的html表单。
如果testField1值是“显示值”的任何值,则要保存的值将是“要在DB中保存的值”中列出的相应值
例如如果testField1值为'Excellent',则要保存的值为10 。
此特定映射适用于域类中的大约30个属性。
像这样,我对不同的属性有不同的映射。
如何在grails中实现这一目标。
答案 0 :(得分:2)
我建议使用枚举。
class Test{
enum Scales{
Excellent(10), Good(8), Average(6), Poor(4), Pathetic(2)
private final int value
Scales(int v){ this.value = v}
int getValue(){ this.value}
}
int testField1
int testField2
int testField2
.
.
int testFieldN
}
<强> GSP 强>
<g:select name='testField1' from="${Test.Scales}" optionKey="value"/>
但最好将enum用作一种属性
class Test{
enum Scales{
Excellent(10), Good(8), Average(6), Poor(4), Pathetic(2)
private final int value
Scales(int v){ this.value = v}
int getValue(){ this.value}
}
Scales testField1
....
}
然后 的 GSP 强>
<g:select name='testField1' from="${Test.Scales}"/>