2014-10-16 52 views
0

我正在使用grails v2.3.3,並試圖在兩個操作中使用一組命令對象的實例。使用帶有視圖的命令對象鏈命令

在第一個操作中,我創建了一組命令對象實例,然後將其顯示在要編輯的視圖中。

然後,我使用視圖中的鏈接將此數據提交給需要訪問更新的命令對象實例集的同一控制器中的另一個操作。

我看了'鏈'命令,它使命令對象可以跨不同的動作訪問,但它似乎提供了從一個動作到另一個動作的直接鏈接,沒有顯示視圖和啓用某個用戶界面的選項。

我看不到如何通過視圖實現這一點,以便更新這些命令對象實例的內容,然後發送到第二個要處理的動作。

我將命令對象設置爲「會話」範圍,並且很驚訝,默認情況下它無法通過控制器的所有操作訪問 - 範圍是什麼意思?

-Mike

回答

0

這樣做的正常方式是重新創建所述第二動作從形式發佈數據的命令對象。這意味着視圖的表單必須包含命令對象的所有字段,可以是可見(可編輯)或隱藏(傳遞)輸入字段。如果您將它們作爲參數添加到操作中,Grails命令對象綁定支持將自動填充新的命令對象。此外,您始終可以使用包含所有發佈表單字段的「params」映射值手動構建新的命令對象實例。

有關詳細信息和示例,請參閱「Grails手冊中的命令對象和數據綁定」部分。

+0

我會給它一個。 – mikek 2014-10-17 13:14:09

+0

Steve Hole - 有一個複雜的問題,那就是第一個動作中的命令對象設置的內容由一個文件列表組成(來自html多個文件格式/輸入標籤的MultiPartfile類型,我很難引用這些文件在第二個動作中上傳它們是否會以這種方式跨多個操作執行MultiPartFile請求(例如getFile())? – mikek 2014-10-17 13:57:28

+0

將此組命令對象(本例中爲兩個)傳遞給第二個動作I如果我將它們打印出來作爲參數的一部分,我會得到:'flUp:[[email protected],[email protected]]'。如果我嘗試重寫它們作爲原始命令對象在第二個動作中通過循環這兩個對象:\t'(UploadFiles uP in params.flUp){}'。我得到一個GroovyCastException錯誤:**無法強制轉換類'[email protected]' java.lang.Stri ng'到類'vidplay.UploadFiles'**。有什麼建議麼? -麥克風 – mikek 2014-10-20 10:54:01