我有一个多选变量发布到控制器。多选择工作的方式是,如果仅选择一个值,则将其作为单个字符串传递;如果选择了多个值,则将其作为字符串[]进行传递。我想保持简单的处理,并将传递的值视为相同。这样我就可以了最好的办法就是将它转换成列表,像这样:将字符串或字符串[]转换为使用Groovy列表
def selectedValues = params.selectedValues
List valuelist = new ArrayList()
if(selectedValues instanceof String) {
valuelist.add(selectedValues)
} else {
valuelist = selectedValues as List
}
它的工作原理,但我很好奇,如果有做这一个更巧妙的方式,也许有一个衬垫:)。
当然,如果我简单地做:
List valuelist = selectedValues as List
这将不会为单一选择的值工作,因为它会将其转换从可以说24 [2,4]
任何想法?
谢谢,我喜欢使用flatten()的解决方案 – Micor 2010-07-02 01:04:28
比.findAll {it!= null}只是' - null',它将删除数组中的所有空条目。 – mmigdol 2011-12-21 16:21:51
谢谢,这是一个非常好的解决方案! :D – 2017-01-04 15:09:20