SpringMVC接收java.util.Date类型数据的2种方式小结

网友投稿 260 2022-12-20

SpringMVC接收java.util.Date类型数据的2种方式小结

SpringMVC接收java.util.Date类型数据

在Controller中如下定义方法

public PassQueryRequest trade(@ModelAttribute PassQueryRequest tradeRequest,

@RequestParam(value="startDate", required=true)Date startDate,

@RequestParam(value="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"将配置weZSEkVs到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类

@InitBinder

public 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 接受前台的时间格式 传到后台的格式

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java快速排序案例讲解
下一篇:jpa介绍以及在spring boot中使用详解
相关文章

 发表评论

暂时没有评论,来抢沙发吧~