当我的Spring Controller收到带有逗号的参数值时,Spring会将其视为s参数数组。有人遇到这样的问题吗?示例代码片段可以重现问题。
public class Pojo {
List<String> param;
public List<String> getParam() {
return param;
}
public void setParam(List<String> param) {
this.param = param;
}
}
@Controller
public class ParamController {
@ModelAttribute("myPojo")
public Pojo getPojo(){
System.out.println("From :: myPojo");
return new Pojo();
}
@RequestMapping(value={"/chk-param"})
private String getOtherView(@ModelAttribute(name="myPojo") Pojo pojo,HttpServletRequest req){
System.out.println(System.nanoTime()+"::From chk-param");
System.out.println(System.nanoTime()+"::From chk-param Spring Params");
for(String param: pojo.getParam()){
System.out.println("Param::"+param);
}
System.out.println(System.nanoTime()+"::From chk-param ServletReq Params");
for(String param: req.getParameterValues("param")){
System.out.println("ServletReq Param::"+param);
}
return null;
}
}
http://localhost:8080/paramchk/chk-param.html?param=jim2%2Cjohn2&name=chk&value=fine-不起作用
http://localhost:8080/paramchk/chk-param.html?param=paul¶m=jim2%2Cjohn2&name=chk&value=fine-工作中
因此,当单个参数存在且包含逗号时,如何正确处理数据绑定。有人可以帮助解决此问题。
谢谢, 保罗