簡體   English   中英

如何使用Grails將數組的值映射到命令對象中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM