[英]How can I map values of an array into command objects using Grails?
通常我使用命令對象來處理提交的值。 但是,如果通過AJAX(使用jQuery)提交了相同屬性的多個值,那么我將無法使用命令對象。
在我的GUI中,用戶可以單擊復選框以標記一些對象。 假設復選框的名稱是provider,即
<input type=checkbox name=provider value=1>
<input type=checkbox name=provider value=2>
and so on...
當單擊的值通過AJAX提交時,在Grails控制器中,這些值在地圖中:
params.'provider[]'
其中的鍵是provider [],如果單擊多個復選框,則值為字符串數組,否則,它只是一個字符串。
問題是,我無法使用名為provider []的屬性創建命令對象。 我試過的是:
class MyCommand {
Long[] provider
// or
List<Long> provider
}
但這沒用。
所以,我的問題是,在這種情況下如何使用命令對象? 我希望Grails進行映射,我不想自己進行映射。
我正在使用Grails 2.3.11。
在此先感謝您,最好的問候,
丹尼爾
要使用命令對象,請將您的復選框名稱更改為provider [index]
<input type="checkbox" name="provider[0]" value=1>
<input type="checkbox" name="provider[1]" value=2>
and so on...
並更改您的命令對象-
import org.apache.commons.collections.FactoryUtils
import org.apache.commons.collections.ListUtils
class MyCommand {
List<Provider> provider = ListUtils.lazyList([], FactoryUtils.instantiateFactory(Provider))
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.