iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringMVC接收java.util.Date类型数据的2种方式小结
  • 855
分享到

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

2024-04-02 19:04:59 855人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

springMVC接收java.util.Date类型数据 在Controller中如下定义方法 public PassQueryRequest trade(@ModelAttr

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;
    }

<dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>${joda-time.version}</version>
        </dependency>

2、直接使用java.util.Date变量接收参数


@org.springframework.WEB.bind.annotation.InitBinder
 public void InitBinder(
   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类
  @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中配置日期转换


<!-- 日期转换 -->
 <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
  <property name="webBindingInitializer">
   <bean class="com.wx.web.convertDate"/>
  </property>
 </bean>

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

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: SpringMVC接收java.util.Date类型数据的2种方式小结

本文链接: https://www.lsjlt.com/news/132258.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作