2014-05-14 35 views
1

我想使用<g:submitToRemote value="Submit" update="[success:'resultContent',failure:'errorPage']" action="submit" /> 啓用驗證通過時更新resultContent div,但當驗證未通過時更新errorPage div。如何使用Grails的更新屬性submitToRemote

但我不知道如何讓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當所有的值都是有效的,但更新errorPage當有一些驗證錯誤時。 resultContent div已更新。但errorPage未觸及。 如何讓Grails知道errorPage div應該更新? 我想我應該對控制器進行一些更改,讓gsp頁面知道驗證處於「失敗」狀態。但我無法在網上找到這樣的例子。請幫忙!

回答

1

如果你想創建一個基於PARAMS新User你可以做這樣的事情:

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

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