1.对于从前台往后台传值,例如long,int,double,date,用实体接收报错的解决办法
①如果穿数值型的,一律把字符串改成数值类型
Number(value),
②如果是日期date类型的,在后台进行转换
new Date(value);
③或者在后台进行处理
解决办法:使用@InitBinder注解
(1)需要自定义一个基础Controller,完成对日期转换的注册:
实现springMVC完成自动将前台的String类型向Date、Double类型转换,否则常报HTTP <wbr>ERROR:400
(2)让其他业务控制层的Controller继承这个BaseController就OK了。
实现springMVC完成自动将前台的String类型向Date、Double类型转换,否则常报HTTP <wbr>ERROR:400
这样就实现了自动转换复杂类型的数据了。
说明:还可@DateTimeFormat 注解方式实现,不过这种方式我没有尝试成功,按道理说应该也是可以的。
在用上面方法前一定要做如下操作
最进在开发关于SpringMVC框架的项目时,发现个数据绑定的问题,如果这个实体对象里的字段类型为long、int、double时,客户端就报400语法错误
源代码:
controller:
@RequestMapping("insertReleaseMapIconConfig")
@ResponseBody
public String insertReleaseMapIconConfig(ReleaseMapIconConfig releaseMapIconConfig ){
String result = "ok";
try{
releaseMapIconConfigService.insertMapIconConfig(releaseMapIconConfig);
}catch(Exception e){
e.printStackTrace();
result = "fail";
}
return result;
}
实体类:
public class ReleaseMapIconConfig{
private String id;
private long maxValue;
private long minValue'
private char unit;
private String icon;
以下setter和getter方法省略
}
解决方案:将long 、int、double、char改为Long、Integer、Double、Character包装类型即可
,即:
public class ReleaseMapIconConfig{
private String id;
private Long maxValue;
private Long minValue'
private Character unit;
private String icon;
以下setter和getter方法省略
}