我想使用<g:submitToRemote value="Submit" update="[success:'resultContent',failure:'errorPage']" action="submit" />以在通过验证时更新resultContent div,但在未通过验证时更新errorPage div。

但是我不知道如何让grails知道验证没有通过。这是我使用的代码

在 Controller 中

def error=validate(params)
def user=User.get(1)
try{
    if(error){
        params.error=error

        throw new Exception("Validation Failure")

    }else{
        render(view:'result')
    }
}
catch(Exception e){
    render(view:'error')
}

在gsp中
...
<div id="errorPage"></div>
...
<div id="resultContent"></div>
...

我想要的是在所有值均有效时更新resultContent,但是在存在某些验证错误时更新errorPageresultContent div已更新。但是errorPage保持不变。
如何让Grails知道errorPage div应该更新?
我想我应该在 Controller 中进行一些更改,以使gsp页面知道验证处于“失败”状态。但是我找不到在线示例来执行此操作。请帮忙!

最佳答案

如果要基于参数创建新的User,可以执行以下操作:

def user = new User(params)
user.validate()

if ( user.hasErrors() ) {
    render template: 'error', model: [user: user], status: '403'
} else {
    render view: 'result'
}

关于ajax - 如何使用Grails的update属性SubmitToRemote,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23666799/

10-15 13:06