2017-04-14 50 views
0

我使用Grails 2.4.2版本。我有一個領域類,我有一個領域的另一個領域類對象。當我爲我的域生成視圖時,它會爲該類對象創建一個選擇框。我評論了選擇框並將視圖中的ID傳遞給控制器​​。在控制器中,我試圖通過grails的domain.get()方法添加類對象。但是對於控制器中的hasErrors()方法,它總是顯示驗證問題,並在不保存的情況下重定向錯誤。如果我評論hasErrors(),那麼它會正確保存。但我需要使用hasErrors()進行其他字段驗證。任何人都可以幫助我嗎?下面是我下面的代碼:如何省略字段有效性Grails的控制器的hasErrors()方法

我的域>>>

class ThanaAgent { 

    String agentName 
    DistrictAgent districtAgent 

    ... 
} 

我的控制器保存方法>>>

@Transactional 
def save(ThanaAgent thanaAgentInstance) { 

    if (thanaAgentInstance == null) { 
     notFound() 
     return 
    } 

    DistrictAgent districtAgent = DistrictAgent.get(Long.parseLong(params.districtAgentId)) 
    thanaAgentInstance.districtAgent = districtAgent 

    if (thanaAgentInstance.hasErrors()) { 
     respond thanaAgentInstance.errors, view: 'create' 
     return 
    } 

    thanaAgentInstance.save flush: true 

    request.withFormat { 
     form multipartForm { 
      flash.message = message(code: 'default.created.message', args: [message(code: 'thanaAgent.label', default: 'ThanaAgent'), thanaAgentInstance.id]) 
      redirect thanaAgentInstance 
     } 
     '*' { respond thanaAgentInstance, [status: CREATED] } 
    } 
} 

我在這裏分配對象districtAgent。

在我看來,而不是選擇>>>

<div class="form-group"> 
     <label>District Agent</label> 
     ... 
     <g:hiddenField name="districtAgentId" id="districtAgentId" 
         value="1"/> 
     %{--<g:select id="districtAgent" name="districtAgent.id" from="${book.DistrictAgent.list()}" optionKey="id" required="" value="${thanaAgentInstance?.districtAgent?.id}" class="form-control"/>--}% 
    </div> 

回答

0

哦,它是如此簡單。只需編輯字段選擇框的名稱如下:

<g:hiddenField name="districtAgent.id" id="districtAgent" 
         value="${thanaAgentInstance?.districtAgent?.id}"/>