【发布时间】:2013-10-10 09:49:00
【问题描述】:
我有一个用户注册表单,其中的字段使用命令对象进行验证。其中一个字段是一个复选框,在继续注册之前必须选中它,并且它不会保存到域对象中。此复选框在命令对象中有一个对应的布尔字段。未选中复选框时,自定义验证器会引发验证错误。
问题是,这个错误没有在<g:renderErrors bean="${command}" as="xml"/> 块中传播(验证器被正确触发)。
命令对象:
class RegisterCommand {
...
Boolean termsChecked
...
static constraints = {
...
termsChecked validator: RegisterController.termsCheckedValidator
}
验证器:
static final termsCheckedValidator = {termsChecked, command, errors ->
if (!command.termsChecked) {
return 'registerCommand.termsChecked.required'
}
}
GSP 文件中的复选框:
<g:checkBox value="${command.termsChecked}" bean="${command}" name='termsChecked'/>
如何解决?
【问题讨论】:
-
验证器在
RegisterController中是否如您所展示和使用的那样? -
@dmahapatro,是的。验证正确通过,但错误消息永远不会返回到视图。
标签: validation grails command-objects