目前我们正在将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”。
知道我们如何克服这个问题吗?
感谢您的时间。
答案 0 :(得分:1)
经过许多网上冲浪后,我明白了这一点。 Acctualay是瞬态值绑定问题的问题。
现在,默认情况下,静态类型的实例属性是可绑定的。默认情况下不可绑定的属性是与瞬态字段,动态类型属性和静态属性相关的属性。
所以解决方案是:
必须为可绑定约束分配一个文字布尔值。动态表达式不是可绑定约束的有效值。值必须是文字真或假。
在我的问题中:
Domoan:
A {
:
:
Boolean check
static transients = ['check']
static constraints = {
check bindable: true
:
:
}
}
源: http://grails.org/doc/latest/ref/Constraints/bindable.html