SpringMVC3.0+myBatis3.2整合的显示和添加功能中时间问题解决


这段时间,我在网上看见,数据访问框架除了hibernate,还有不少的公司使用mybatis,边在网上下了mybatis,自己做一个springmvc+mybatis整合的小Demo,发现使用springmvc来处理时间好纠结,花了一天的时间,在网上找了大量的资料和看了官方的Demo,用了相对比较猥琐的办法,解决了问题!废话不多说,下面上菜:

首先,是显示问题,大家都知道springmvc会把数据库中查出来的Date时间,使用Jackson传到前台会转成毫秒数也就是一长串数字(如:“hiredate”:"142714380000000"),这个问题,我在网上看了很多前辈的解决办法,我都试过,但是很遗憾,都不适合我!没办法,只能想,在js中用个方法吧毫秒数转成正常的时间显示,如下

$.each(data,function(i,emp){
  					str+="<tbody align='center'><tr>";
	  				str+="<td>"+emp.empno+"</td>";
	  				str+="<td>"+emp.ename+"</td>";
	  				str+="<td>"+emp.job+"</td>";
	  				<strong><span style="color:#ff0000;">var newdate=jsondate(emp.hiredate);
	  				str+="<td>"+newdate+"</td>";</span></strong>
	});


就是这两行,其中jsondate(emp.hiredate)是个function方法,如下:

function jsondate(date){
  		var datetime = new Date(date);
  		var year=datetime.getFullYear();
        //月份重0开始,所以要加1,当小于10月时,为了显示2位的月份,所以补0
        var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
        var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
        var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();
        var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
        var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
        return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second;
  	}
OK,上面的时间显示问题,算是解决了

接下来就是添加时的问题了,相信大家,如果第一次使用springmvc添加时间都会报错:

org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors

这种情况就是springmvc识别不了你输入的时间,导致转换不了,所以报错,别怕,解决的方法如下:

首先,需要下载一个joda-time-2.1.jar包,

然后在实体domain的时间类型属性上配置

@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date hiredate;
OK,现在保存项目,再去运行,问题解决!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值