gpt4 book ai didi

grails - 如何使用Grails将数组的值映射到命令对象中?

转载 作者:行者123 更新时间:2023-12-02 14:50:39 25 4
gpt4 key购买 nike

通常我使用命令对象来处理提交的值。但是,如果通过AJAX(使用jQuery)提交了相同属性的多个值,那么我将无法使用命令对象。

在我的GUI中,用户可以单击复选框以标记一些对象。假设复选框的名称是provider,即

<input type=checkbox name=provider value=1>
<input type=checkbox name=provider value=2>
and so on...

当单击的值通过AJAX提交时,在Grails Controller 中,这些值在 map 中:
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))
}

关于grails - 如何使用Grails将数组的值映射到命令对象中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31917402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com