0

我有3個領域: - EligibilityInclusion - EligibilityExclusion - EligibilitySummary如何在一個表單中混合多個域對象?

我也建eligibility.gsp(混合使用的3個模板:_inclusion,_exclusion,_Summary;而我還使用jQueryUI的標籤,從而使得各域在一個選項卡中)。

一切都很好,但現在我只想用一個控制器來創建,編輯,列表和顯示。
如何通過一個控制器處理3個域?
(例如,我想用EligibilityController來處理我的3個領域)

什麼是最好的用法:
- 結合多個OBJETS? - 使用命令對象?

回答

2

不幸的是,命令對象並不能幫助視圖的輸入模型,它們專門用於幫助綁定和驗證請求參數的輸出模型。但是,如果您準備深入研究一些元編程以實現創建視圖模型的數據綁定,則可以基於命令對象推出自己的View Model。
這是一個基本的方法。下面的代碼構造的命令對象,然後可以通過作爲模型的視圖中,所述控制器:

class ItemCommand { 
// attribute declarations ... 

public void bindData(def domainInstance){ 
    domainInstance.properties.keySet().each { prop -> 
     if(prop == "class"){ 
      // not needed 
     } else if(prop == "metaClass") { 
      // not needed 
     } else if(this.properties.containsKey(prop)){ 
      this."${prop}" = domainInstance."${prop}" 
     } 
    } 
} 

這將允許你通過調用bindData對於每個域對象的從不同的域對象的數據結合。

這是我使用的解決方案的本質。如果您打算更新域對象,則需要將不同域對象(和版本屬性)的ID存儲爲隱藏字段。

0

你不能只提交多個對象,如果他們有一些具有相同的字段名稱,對不對?

我試圖將3個對象加入到帶有3個字段的單個命令中,分別是:inclusionInstance1, inclusingInstance2, summaryInstance1和gsp-s中的名稱字段,如name='command.inclusionInstance1.name'。提交表單時,分配command.properties = params應該可以工作。

相關問題