spring MVC request请求不能传递带逗号的参数

代码如下

<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”。

 

哪位大侠可以告诉我这是怎么回事么,如何解决?万分感谢。


慕少森
浏览 1041回答 5
5回答

神不在的星期二

主要在于你的拼接参数,因为你现在一个chekbox里面就已经有逗号了,所以你前台拼接成参数过去就以别的形式分开,可以使用^,然后后台对^进行截取,我的理解是,本来你就是传递的是数组,你现在传一个“12”,“34”,“56”这个过去,我们知道他只是一个值,但是spring应该会认为他是,分割,因为它会理解成你当前传递的是数组,肯定会找里面的分割符号,那你现在,正好符合他的要求,他肯定会认为是一个数组啊,如果中间没有,那么就是单一的一个值了,说的有点乱,不介意啊

MYYA

html中,发送request之前是如何拼接参数数据的?

倚天杖

由于你的name属性是相同的,所以会出现这种状况。

12345678_0001

不建议同名 test 来注入到bean 中去如果比较复杂的 建议组成json串处理 貌似多个radio 可以用重名。你这个checkBox 为什么要用同名啊

呼如林

method写错了。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java