grails controller:访问具有元素列表的参数

Fra*_*oDS 2 grails controller list

我需要访问存储在参数中的项目,该参数表示多选中的所选元素.我使用以下代码将选定的项目从gsp传递给控制器​​到remoteFunction:

params: '\'receiptItemsSelected=\' + jQuery(this).val()'
Run Code Online (Sandbox Code Playgroud)

现在,按照此处讨论中的代码,我使用闭包来获取每个值,但是如果我执行多选,则receiptItemsSelected的大小始终为1,但值例如为1,2.要将值作为列表获取,我在控制器中完成了以下操作

params.list("receiptItemsSelected")
Run Code Online (Sandbox Code Playgroud)

但如果我在multiselect中选择两个项目,但它总是只有一个元素,它就不会给我两个元素.问题是:如果我选择两个元素,我如何获得每个元素并在控制器中使用它?我怎么能把那些元素当作长而不是字符串呢?谢谢

cod*_*ark 5

如果您正在使用列表的字符串表示形式传递参数,例如:

http://yoursite.com/?receiptItemsSelected=1,2,3
Run Code Online (Sandbox Code Playgroud)

您必须使用普通的Groovy字符串操作拆分值并自行执行类型转换:

def receiptsAsLongs = params.receiptItemsSelected.split(',')*.toLong()
Run Code Online (Sandbox Code Playgroud)

如果您的参数以重复参数的约定传递,则会生成一个列表,例如:

http://yoursite.com/?receiptItemsSelected=1&receiptItemsSelected=2
Run Code Online (Sandbox Code Playgroud)

然后,Grails能够将此转换为你使用一个列表params.list(),但你必须做最后StringLong转换:

def receiptsAsLongs = params.list('receiptItemsSelected')*.toLong()
Run Code Online (Sandbox Code Playgroud)