ユーザーの挿入中にエラーが発生した場合、デフォルトのエラーメッセージを表示したい。コントローラーには2つのアクションがあります:
def openPage() {
[user: new User(params)]
}
def save() {
User user = new User(params)
if (!user.save(flush:true)) {
redirect(view:'openPage', model:[user:user])
return
} else {
flash.message = "User saved"
redirect(action:'openPage')
}
}
これは私のgspです:
<g:hasErrors bean="${user }">
<g:eachError bean="${user }" var="error">
<li>${error } </li>
</g:eachError>
</g:hasErrors>
<g:if test="${flash.message }">
${flash.message }
</g:if>
<g:form action="save">
Name:<g:textField name="username"/>
<g:submitButton name="ok" value="Save"/>
</g:form>
しかし、何か問題があり、値を送信しないとエラーは表示されません。これは私のドメインです:
String username
static constraints = {
username(nullable:false, blank:false, unique:true)
}
私のコードの何が問題なのですか? 助けてください。エラーをキャッチするためにこのメソッドを使用する必要がありますか、それとも if...else と try...catch を使用する方がよいでしょうか?