在Grails 2.2.4中为复选框绑定布尔值

时间:2014-01-02 07:43:19

标签: checkbox boolean grails-2.2

目前我们正在将Grails版本从1.3.3升级到2.2.4。这样做时,我们遇到了一个复选框值的布尔绑定问题。

这是代码......

Domoan: 
    A {
         :
         :
         Boolean check
      }
View: 
              :
              :
          <g:checkbox name = "check" value = &{A?.Check}/>

Controller:
   def Save {
           def aInstance = new A(params)
           if (aInstance.check)
           }  

在上面的例子中,布尔值没有正确绑定,我们总是在if语句中得到“null”。

知道我们如何克服这个问题吗?

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

经过许多网上冲浪后,我明白了这一点。 Acctualay是瞬态值绑定问题的问题。

现在,默认情况下,静态类型的实例属性是可绑定的。默认情况下不可绑定的属性是与瞬态字段,动态类型属性和静态属性相关的属性。

所以解决方案是:

必须为可绑定约束分配一个文字布尔值。动态表达式不是可绑定约束的有效值。值必须是文字真或假。

在我的问题中:

Domoan:

A {
     :
     :
     Boolean check
     static transients = ['check']
     static constraints = {
       check bindable: true
       :
       : 
     }

}

源: http://grails.org/doc/latest/ref/Constraints/bindable.html