2011-05-10 129 views
0

我有这个DomainClass:Grails的控制器错误

package cm 

class XXX{ 


    String city 
    String website 

    static constraints = { 
    city(nullable: true) 
    website(nullable: true) 

    } 

    static mapping = { 
     id column:'xxx_id' 
     city column: 'xxx_city' 
     website column: 'xxx_website' 
     table "xxx_XXX" 
     version false 

} 
} 

控制器:

class ConferenceController { 

    static allowedMethods = [save: "POST", update: "POST", delete: "POST"] 

    def index = { 
     redirect(action: "list", params: params) 
    } 

    def list = { 
     params.max = Math.min(params.max ? params.int('max') : 10, 100) 
     [XXXInstanceList: XXX.list(params), XXXInstanceTotal: XXX.count()] 
    } 

    def save = { 
     def XXXInstance= new XXX(params) 
     if (!XXXInstance.save(flush: true)) { 
      render view: 'add', model: [XXXInstance: XXXInstance] 
      return 
     } 

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

} 

和我add.gsp页:

<head> 

    <title> xXXx</title> 
    <meta name="layout" content="main2" /> 


</head> 

... 


<g:form controller="XXX" action="save"> 

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


    year 
    <g:textField name="year" /><br> 
    website 
    <g:textField name="website" /><br> 

    <g:submitButton name="save2" value="Save" /> 

    </g:form></div> 
    </div> 


       ... 
</body> 

有了这个当前的代码,一切工作正常,但是当一个约束失败时,它显示出相应的错误,但书面价值已经消失了......我无法弄清楚这一点 - 我试过了很多东西,但我确定解决方案和我的问题一样简单--.-请帮助。

+0

什么呢表明,当验证失败? – 2011-05-10 02:42:15

回答

0

我想你应该检查YOUR_PROJECT\grails-app\i18n文件夹中的* .properties文件。他们有翻译的定义。调查一下,如果需要,请参阅document,您将了解Grails如何执行翻译。

取消注释在控制器下面一行:

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

嗯,我认为我不是非常具体:p我的意思是,当填写表格时,如果某些限制失败,页面被“重新加载”,我失去了我之前介绍的信息。 – John 2011-05-10 02:50:44

+0

@John:那是另一个问题。如果我的猜测是正确的,这个页面是由Grails的脚手架实用工具制作的:它只添加服务器端验证。如果你想保留提交之前输入的信息,你应该尝试一些客户端验证,通过jQuery-javascript例如 – 2011-05-10 02:53:50

+0

@John:你可以在这里检查一些客户端验证解决方案:http://stackoverflow.com/questions/1806086/grails-client-side-validation – 2011-05-10 02:57:52