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

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;			//发票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();
}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报错记录

 

 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值