代碼如下<html> <body> <input name="test" value="12,34,56" type="checkbox"/> <input name="test" value="78,90,11" type="checkbox"/> </body></html> 接收參數類public class TestClass{ private String[] test; public void setTest(String[] test){ this.test = test; } public String[] getTest(){ return test; }}問題是這樣的,當我在頁面中勾選兩個復選框時,功能正常test數組長度為2,值分別為“12,34,56”,"78,90,11"但當我只勾選第一個復選框時,test數組長度為3,值分別“12”,“34”,“56”。 哪位大俠可以告訴我這是怎么回事么,如何解決?萬分感謝。
5 回答

神不在的星期二
TA貢獻1963條經驗 獲得超6個贊
主要在于你的拼接參數,因為你現在一個chekbox里面就已經有逗號了,所以你前臺拼接成參數過去就以別的形式分開,可以使用^,然后后臺對^進行截取,
我的理解是,本來你就是傳遞的是數組,你現在傳一個“12”,“34”,“56”這個過去,我們知道他只是一個值,但是spring應該會認為他是,分割,因為它會理解成你當前傳遞的是數組,肯定會找里面的分割符號,那你現在,正好符合他的要求,他肯定會認為是一個數組啊,如果中間沒有,那么就是單一的一個值了,說的有點亂,不介意啊

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
不建議同名 test 來注入到bean 中去
如果比較復雜的 建議組成json串處理 貌似多個radio 可以用重名。你這個checkBox 為什么要用同名啊
添加回答
舉報
0/150
提交
取消