2011-03-22 54 views
1

我正在使用Grails 1.3.7。在Grails項目中,我想將一個函數ajaxupdate添加到默認的腳手架控制器,該腳本的功能與更新函數完全相同,但會返回帶有最終錯誤列表的JSON數據。在Grails控制器模板中從腳手架功能獲取錯誤列表

def ajaxupdate = { 
    String retMessage = "" 
    List errMessageList = [] 

    def ${propertyName} = ${className}.get(params.id) 
    if (${propertyName}) { 
     ${propertyName}.properties = params 
     if (!${propertyName}.hasErrors() && ${propertyName}.save(flush: true)) { 
      retMessage = "\${message(code: 'default.updated.message', args: [message(code: '${domainClass.propertyName}.label', default: '${className}'), ${propertyName}.id])}" 
     } 
     else { 
      // Add errors in errMessageList 
     } 
    } 
    else { 
     errMessageList.add("\${message(code: 'default.not.found.message', args: [message(code: '${domainClass.propertyName}.label', default: '${className}'), params.id])}") 
    } 

    render(contentType: "text/json") { 
     answer(
      message:retMessage, 
      errors:errMessageList) 
    } 
    } 

回答

4

如果你問如何獲得錯誤列表,您可以訪問Errors

errMessageList = ${propertyName}.errors.allErrors.collect {g.message(error:it).encodeAsHTML()} 
+0

謝謝,維克多!它確實*我想要的! – Monkey 2011-03-23 02:49:53