代码如下<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
提交
取消