Grails在服务器端设置默认错误

问题描述:

我有2个域类Form和FormItem。 Form有很多FormItems。我试图用表单中的3个项目运行我的Grails应用程序,并且显然在第一项中设置了错误的值作为我的字段之一。点击“提交”后,我收到2条错误消息,而不是1条。这是相同的错误消息“属性值为-9的包的数量小于最小值0”。这是我的问题。 Grails在默认情况下试图设置错误消息,为什么2错误而不是1(这不是我的任务的特定情况,我尝试在各种项目中获得2条消息而不是1条消息)?Grails在服务器端设置默认错误

编辑 以这种方式显示的错误。

<g:eachError> 
     <dt> 
      <a href="" 
        onclick="alert('adas'); javascript:document.getElementById('${it.getProperties().get("field")}').focus(); 
        return false;"> 
        <g:message error="${it}"/> 
       </a> 
      </dt> 
</g:eachError> 

//FormController  
def submit() { 
     def formX = mergeGetFromSession() 
     formX.status = "Stored" 
     FormX.withTransaction { 
      if (formX.save(flush: true)) { 
       formXTaskService.startProcess(formX) 
      } 
     } 

     if (formX.hasErrors()) { 
      formX.isDocumentEditable = true 
      render(view: "create", model: [formXInstance: formX]) 
     } else { 
      session.invalidate() 
      flash.message = message(code: 'default.created.message', args: [message(code: 'formX.label', default: 'FormX'), formX.id]) 
      redirect(action: "show", id: formX.id) 
     } 
    } 
+0

看到/你是如何展示你的错误? – 2012-04-18 09:35:59

+0

我知道它存储在message.properties中,我想知道grails尝试在服务器端设置错误的位置。 – emilan 2012-04-18 10:49:50

+0

验证阶段 – 2012-04-18 10:58:47

+0

请看我编辑的代码,并请说明错误设置器的位置。 :) – emilan 2012-04-18 11:05:03