grails控制器呈现错误 [英] grails controllers render errors

查看:147
本文介绍了grails控制器呈现错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

class Person {
   String name
   Integer age
   String street
   String email
}

class PersonController {
    def save = {
        def personInstance = new Person(params)
        personInstance.save(flush:true)
    }
}

main.gsp

<g:form controller="person" action="save">
    <g:textField name="name" />
    <g:textField name="age" />
    <g:textField name="street" />
    <g:textField name="email" />
    <g:submitButton name="save" value="Save" />
</g:form>

我必须在控制器和gsp页面中进行哪些修改, gsp page?

What modifications do i have to make in both the controller and the gsp page to render the errors to the gsp page?

推荐答案

将控制器操作更改为

def save = {
   def personInstance = new Person(params)
   if (!personInstance.save(flush: true)) {
      render view: 'create', model: [personInstance: personInstance]
      return
   }

   flash.message = "${message(code: 'default.created.message', args: [message(code: 'person.label', default: 'Person'), personInstance.id])}"
   redirect action: 'show', id: personInstance.id
}

并在< g:form> p>

and add this just before your <g:form>:

<g:hasErrors bean="${personInstance}">
   <div class="errors">
      <g:renderErrors bean="${personInstance}" as="list" />
   </div>
</g:hasErrors>

考虑运行 grails generate-all packagename.Person 并编辑生成的控制器和GSP。当然,首先你的方式。

Consider running grails generate-all packagename.Person and editing the generated controller and GSPs. Of course move yours out of the way first.

这篇关于grails控制器呈现错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆