2011-05-10 158 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