我有一個多選變量發佈到控制器。多選擇工作的方式是,如果僅選擇一個值,則將其作爲單個字符串傳遞;如果選擇了多個值,則將其作爲字符串[]進行傳遞。我想保持簡單的處理,並將傳遞的值視爲相同。這樣我就可以了最好的辦法就是將它轉換成列表,像這樣:將字符串或字符串[]轉換爲使用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