SpringMVC接收java.util.Date类型数据的2种方式小结
SpringMVC接收java.util.Date类型数据
在Controller中如下定义方法
public PassQueryRequest trade(@ModelAttribute PassQueryRequest tradeRequest,@RequestParam(value="https://www.it610.com/article/startDate", required=true)Date startDate,@RequestParam(value="https://www.it610.com/article/endDate", required=true)Date endDate
1、在springmvc中使用对象接收参数时
在PassQueryRequest中,在日期属性的set方法中增加定义,以及maven配置
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")public Date getStartDate() {return startDate; }
joda-time joda-time${joda-time.version}
2、直接使用java.util.Date变量接收参数
@org.springframework.web.bind.annotation.InitBinder public void InitBinder(/* HttpServletRequest request, */ServletRequestDataBinder binder) {// 不要删除下行注释!!! 将来"yyyy-MM-dd"将配置到properties文件中// SimpleDateFormat dateFormat = new// SimpleDateFormat(getText("date.format", request.getLocale())); System.out.println("执行了InitBinder方法"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); dateFormat.setLenient(false); binder.registerCustomEditor(Date.class, null, new CustomDateEditor(dateFormat, true)); }
解决 springmvc中接收date数据问题 springmvc Controller类中需要接收的是Date类型,但是在页面端传过来的是String类型,就会出现以下异常
Failed to convert value of type 'java.lang.String' to required type 'java.util.Date';这里提供三种解决方案。
一、局部转换
@Controller@RequestMapping("order")public class OrderCtrl extends CtrlSupport { private static final Logger logger = LoggerFactory.getLogger(OrderCtrl.class); // 将字符串转换为Date类@InitBinderpublic void initBinder(WebDataBinder binder, WebRequest request) {// 转换日期格式DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); }}
二、全局转换
1.创建convertDate类实现WebBindingInitializer接口
public class convertDate implements WebBindingInitializer{ @Override public void initBinder(WebDataBinder binder, WebRequest request) {// TODO Auto-generated method stub//转换日期DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true)); }}
2.在Spring-MVC.xml中配置日期转换
三、get方法配置
import org.springframework.format.annotation.DateTimeFormat; import com.fasterxml.jackson.annotation.JsonFormat; @DateTimeFormat(pattern = "yyyy-MM-dd")@JsonFormat(pattern="yyyy-MM-dd",timezone="GMT+8")public Date getGetLicenseTime() { return getLicenseTime; }public void setGetLicenseTime(Date getLicenseTime) { this.getLicenseTime = getLicenseTime; }
@JsonFormat
默认是标准时区的时间, 北京时间 东八区 timezone=”GMT+8”作用:后台的时间 格式化 发送到前台
@DateTimeFormat
接受前台的时间格式 传到后台的格式【SpringMVC接收java.util.Date类型数据的2种方式小结】以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
推荐阅读
- SpringMVC|SpringMVC 初体验
- SpringMVC返回的ResponseEntity出现乱码及解决
- springmvc|springmvc 集成 Spring Data Elasticsearch 遇到的坑
- SpringMVC(6)(注解的处理器映射器和适配器)
- 这本SCI期刊2个月可接收,从5+到10+只用了三年,明年或超15分
- 笔记之SpringMVC与Struts2的比较
- 解决springmvc使用jersey组件向文件服务器上传文件时报405|解决springmvc使用jersey组件向文件服务器上传文件时报405 Method Not Allowed错误
- (一)Feign之支持文件上传和使用对象作为参数接收
- SpringMVC(1)——概述
- 来看看SpringMVC核心零部件的实现原理