【问题标题】:How to use update property of Grails submitToRemote如何使用 Grails submitToRemote 的更新属性
【发布时间】:2025-11-28 01:30:01
【问题描述】:

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

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

在控制器中

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? 我想我应该在控制器中进行一些更改,让 gsp 页面知道验证处于“失败”状态。但是我在网上找不到一个例子来做到这一点。请帮忙!

【问题讨论】:

    标签: ajax grails gsp


    【解决方案1】:

    如果你想根据参数创建一个新的User,你可以这样做:

    def user = new User(params)
    user.validate()
    
    if ( user.hasErrors() ) {
        render template: 'error', model: [user: user], status: '403'
    } else {
        render view: 'result'
    }
    

    【讨论】: