2011-03-22 55 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