SpringMVC日期的处理
一、前端向后端传送字符串自动转换为日期
在controller里添加如下注解方法
@InitBinder
public void initBinder(WebDataBinder binder, WebRequest request) {
//转换日期格式
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
// 注册自定义的编辑器
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));
}
此方法会对本controller类生效;是比较好的使用选择。若需要每个controller实现,可以写一个controller父类如BaseController,将此方法写入父类中并使子类controller继承父类controller即可
二、后端传输到前端日期为时间戳的处理方法
使用vue过滤器,而不是在实体类日期方法上加注解的方法,因为实体类使用反向生成工具内容是被覆盖的
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>TEST</h1>
<div id="app">
<button @click="getDate()">current date</button>
<h3>{{date|dateFilter}}</h3>
</div>
</body>
<script type="text/javascript" th:src="@{/static/js/vue.js}"></script>
<script type="text/javascript" th:src="@{/static/js/jquery.min.js}"></script>
<script type="text/javascript" th:src="@{/static/js/jquery.time.js}"></script>
<script>
var contextPath=[[@{/}]];
var app= new Vue({
el:"#app",
data:{
date:""
},
methods:{
getDate:function(){
$.post(contextPath+"test/date",{},function(data){
app.date=data;
})
}
},
filters:{
dateFilter:function(date){
if(date=="")return "";
return $.msfmt.todate(date,false,8);
}
}
})
</script>
</html>