springmvc使用实体类接收表单提交数据中含有String类型对应Date类型的不匹配报错400时如何处理

来源:互联网 发布:省市区三级联动sql 编辑:程序博客网 时间:2024/06/01 07:22

springmvc使用实体类接收表单提交数据中含有String类型对应Date类型的不匹配情况,页面提交表单报错400,时如何处理?


参看博客:http://blog.csdn.net/u014079773/article/details/51865178 

  • 我的错误发生原因描述:

实体类中包含了一个Date格式的属性,前台提交表单时使用的日期插件,提交的是String类型的日期,于是出现了如400下报错:

实体类:

public class OperateCompactModel  implements BaseIdModel {private String id;private String pId;//工程idprivate String company;//建设单位private String projectName;//工程名称private String compactName;//合同名称private String compactType;//合同类别   1-材料合同 2-用工合同 3-设备租赁合同 4-设备采购合同private String compactBrief;//合同概要private String compactNum;//合同编号private String supplier;//供应商名称private double amount;//总金额private String attachment;//附件private Date signDate;//签订日期private String excute;//执行情况private String remark;//备注private String invoice;//发票

表单提交的日期字段:

<div><label>签订日期</label><span><input class="laydate-icon" id="demo" name="signDate0" value="2016-6-25"></span></div>

后台接收方式:

@RequestMapping(value="operate_addCompact.html")public String addOperateCompact(String token, OperateCompactModel operateCompactModel){//判断是否重复提交boolean isRepeat = NoRepeateSubmit.isRepeatSubmit(request,token);//--tokenif(isRepeat){//如果重复提交了,直接返回//---tokenreturn "redirect:operate_compact.html?id="+operateCompactModel.getpId();}//非重复提交,清除session中的token,执行添加代码request.getSession().removeAttribute("token");operateCompactService.add(operateCompactModel);return "redirect:operate_compact.html?id="+operateCompactModel.getpId();}
报错:

  • 解决办法:

后台使用一个单独的String字段接收表单提交的日期属性,通过dateFomate转化成需要的Date格式再存入到实体类中.

如下:

@RequestMapping(value="operate_addCompact.html")public String addOperateCompact(String token, String signDate0, OperateCompactModel operateCompactModel){//判断是否重复提交boolean isRepeat = NoRepeateSubmit.isRepeatSubmit(request,token);//----------token---------------if(isRepeat){//如果重复提交了,直接返回//----------token---------------return "redirect:operate_compact.html?id="+operateCompactModel.getpId();}//非重复提交,清除session中的token,执行添加代码request.getSession().removeAttribute("token");SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");try {operateCompactModel.setSignDate(sdf.parse(signDate0));} catch (ParseException e) {e.printStackTrace();}operateCompactService.add(operateCompactModel);return "redirect:operate_compact.html?id="+operateCompactModel.getpId();}
当然表单提交的字段name也要改成相应的signDate0.

400报错记录




0 0
原创粉丝点击