您的位置:首页 > 编程语言 > Java开发

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

2017-02-08 10:05 1006 查看
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;			//工程id
private 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);//--token
if(isRepeat){//如果重复提交了,直接返回				//---token
return "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报错记录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: