Grails中的默认错误消息未在视图中呈现

Grails中的默认错误消息未在视图中呈现,grails,message,Grails,Message,如果在插入用户时发生错误,我希望查看默认错误消息。在控制器中,我有两个动作: 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 {

如果在插入用户时发生错误,我希望查看默认错误消息。在控制器中,我有两个动作:

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')
    }
}
这是我的普惠制:

<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>

我的代码怎么了?请帮忙。我必须使用此方法捕获错误,还是最好使用if…else并尝试…catch?如果保存失败,请调用render而不是redirect()方法:

if (!user.save(flush:true)) {
    render(view:'openPage', model:[user:user])
    ...

我明白了。我必须呈现给视图,而不是重定向。
if (!user.save(flush:true)) {
    render(view:'openPage', model:[user:user])
    ...