表单提交出现400错误(SSM)

总结:
1:一般最常见的就是后台的实体类bean与前台穿过的类型不匹配,如你的javabean中有定义了Date类型和int类型的成员变量,导致转化器在把json数据转化成bean时不能转化。(常见)
解决:表单中的<input/>里的name属性的值是否与自己创建的实体类属性一一对应(区分大小写)
2:要返回json的却忘了加@ResponseBody
3.传递了不属于实体类的属性过来,而Controller中标明了接受的时实体类属性
4.提交表单中有Date属性的值,也就是实体类中有Date属性(常见)
解决方法:
1.实体类中加上 @DateTimeFormat(pattern = “yyyy-MM-dd HH:mm:ss”)注解

 //拍卖开始时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date begintime;
    //拍卖结束时间
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endtime;

2.把实体类的javabean里边的类型都改成string类型,在配置SQL语句时用数据库函数to_date或者to_number转化的,如果再java中用到这个字符串类型的日期的话,有必要的话,就用For format=new SimpleDateFormat(“yyyy-MM-dd”),format.parse()来转换。
3.控制器中加入一段数据绑定的代码

//将字符串转换为Date类
@InitBinder
public void initBinder(WebDataBinder binder, WebRequest request) {
//转换日期格式
DateFormat dateFormat = new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);
//注册自定义的编辑器
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}

form的序列化提交表单带过去的参数全都被序列化成了字符串类型,后端的字段类型如果是int、date等类型的需要手动将set方法给转换一下,转换方法上面一大堆中有。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值