我有一個用戶註冊表單,其中使用命令對象驗證字段。其中一個字段是複選框,它在繼續註冊之前必須進行檢查,並且不會保存到域對象。該複選框在命令對象中具有相應的布爾字段。如果未選中複選框,則會從自定義驗證器中引發驗證錯誤。Grails命令對象臨時字段驗證
問題是,此錯誤不會在<g:renderErrors bean="${command}" as="xml"/>
塊中傳播(驗證程序正確觸發)。
的命令對象:
class RegisterCommand {
...
Boolean termsChecked
...
static constraints = {
...
termsChecked validator: RegisterController.termsCheckedValidator
}
驗證:在GSP文件
static final termsCheckedValidator = {termsChecked, command, errors ->
if (!command.termsChecked) {
return 'registerCommand.termsChecked.required'
}
}
複選框:
<g:checkBox value="${command.termsChecked}" bean="${command}" name='termsChecked'/>
這到底是怎麼解決的?
是'RegisterController'驗證你已經證明和有關使用? – dmahapatro
@dmahapatro,是的。驗證正確傳遞,但錯誤消息永遠不會返回到視圖。 – rpozarickij