springmvc 处理Date类型

在使用SpringMVC的时候,我们可能需要将一个对象从View传递给Controller。而当这个Object只是一些简单的String,int或者boolean类型的成员变量时,SpringMVC能自动将View层的JSON包含的String类型转换为Object成员变量相应的类型。但是当这个Object包Date类型的成员变量的时候,SpringMVC在将String转换成Date类型时,就会出错,报异常。但是我们又需要使用Date类型的时候,其实Spring给我们提供了简单的操作方式可以完成这个任务的。

 

     SpringMVC提供了一个注解@DateTimeFormat。可以将View传过来的String类型转换为Date类型。具体使用方式很简单,直接在成员变量上加入注解就可以了,同时还可以指定format的格式,如下所示:

Java代码   收藏代码
  1. public class Person {  
  2.   
  3.     private String name;  
  4.   
  5.     //直接在date类型上加入注解,同时指定格式样式  
  6.   
  7.     @DateTimeFormat( pattern = "yyyy-MM-dd" )  
  8.   
  9.     private Date birthday;  
  10.   
  11.     //setterAndGetter  
  12.   
  13. }  

 

       至此,不要以为完事大吉了,你还需要完成以下两个步骤才可以。

 

第一需要加入jodajar包。因为在@DateTimeFormat注解中使用到了joda包中的相关东西,所以缺少这个包也是会报异常的。如果使用的直接导入jar包的话,去下载joda-Jar导入即可,如果使用的是Maven管理项目的jar,那么在配置文件文件中加入依赖:

Xml代码   收藏代码
  1. <dependency>  
  2.   
  3.     <groupId>joda-time</groupId>  
  4.   
  5.     <artifactId>joda-time</artifactId>  
  6.   
  7.     <version>2.3</version>  
  8.   
  9. </dependency>  

 

第二需要在SpringMVC配置xml文件中(一般是dispatchServlet.xml文件)中加入配置:<mvc:annotation-driven />。这一句配置是一种简写,其实是给Spring容器中注入了两个Bena,分别是:DefaultAnnotationHandlerMappingAnnotationMethodHandlerAdapter@DateTimeFormat注解的内部同样需要使用到前面注入的两个bean去处理,所以缺少这个配置,Spring容器中没有对应的bean去处理注解同样也会报错。至此,所有的步骤都完成了,可以跑了。

 

接下来我们跑跑测试一下,测试过程:

首先需要一个表单:

Java代码   收藏代码
  1. <form action="test" method="post">  
  2.   
  3.     <input type="text" name="name">  
  4.   
  5.     <input type="text" name="birthday">  
  6.   
  7.     <input type="submit" name="提交">  
  8.   
  9. </form>  

 

    用一个Controller接收:

Java代码   收藏代码
  1. @RequestMapping( "/test" )  
  2.   
  3. public ModelAndView test(HttpServletRequest request,  
  4.   
  5.        @ModelAttribute Person person) {  
  6.   
  7.     ModelAndView view = new ModelAndView();  
  8.   
  9.     System.out.println(person.toString());  
  10.   
  11.     view.setViewName("/test/data");  
  12.   
  13.     return view;  
  14.   
  15. }  

 

好了,总结一下整个过程,其实就3步:

1  Date类型的属性上加入@DateTimeFormat注解

2、  加入joda相关的包

3、  在SpringMVC配置文件中加入<mvc:annotation-driven />

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值