我有一个用户注册表单,其中使用命令对象验证字段。其中一个字段是一个复选框,在继续注册之前必须选中它,并且它不会保存到域对象中。此复选框在命令对象中有一个对应的布尔字段。未选中复选框时,自定义验证器会引发验证错误。
问题是,这个错误没有在<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'/>
这怎么可能解决?