0

我有 grails 2.0.4 应用程序,我有如下新域类,其中包含大约 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 中实现这一点。

4

1 回答 1

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
} 

普惠制

<g:select name='testField1' from="${Test.Scales}" optionKey="value"/>

但最好使用枚举作为一种属性

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 
  ....
}

然后 是普惠制

<g:select name='testField1' from="${Test.Scales}"/>
于 2013-10-08T07:04:45.147 回答