SpringMVC处理Date类型的成员变量方法
2015-06-08 16:38
375 查看
在使用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的格式,如下所示:
至此,不要以为完事大吉了,你还需要完成以下两个步骤才可以。
第一需要加入joda的jar包。因为在@DateTimeFormat注解中使用到了joda包中的相关东西,所以缺少这个包也是会报异常的。如果使用的直接导入jar包的话,去下载joda-Jar导入即可,如果使用的是Maven管理项目的jar,那么在配置文件文件中加入依赖:
第二需要在SpringMVC配置xml文件中(一般是dispatchServlet.xml文件)中加入配置:<mvc:annotation-driven />。这一句配置是一种简写,其实是给Spring容器中注入了两个Bena,分别是:DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter。@DateTimeFormat注解的内部同样需要使用到前面注入的两个bean去处理,所以缺少这个配置,Spring容器中没有对应的bean去处理注解同样也会报错。至此,所有的步骤都完成了,可以跑了。
接下来我们跑跑测试一下,测试过程:
首先需要一个表单:
用一个Controller接收:
好了,总结一下整个过程,其实就3步:
1、 在Date类型的属性上加入@DateTimeFormat注解
2、 加入joda相关的包
3、 在SpringMVC配置文件中加入<mvc:annotation-driven />
SpringMVC提供了一个注解@DateTimeFormat。可以将View传过来的String类型转换为Date类型。具体使用方式很简单,直接在成员变量上加入注解就可以了,同时还可以指定format的格式,如下所示:
public class Person { private String name; //直接在date类型上加入注解,同时指定格式样式 @DateTimeFormat( pattern = "yyyy-MM-dd" ) private Date birthday; //setterAndGetter }
至此,不要以为完事大吉了,你还需要完成以下两个步骤才可以。
第一需要加入joda的jar包。因为在@DateTimeFormat注解中使用到了joda包中的相关东西,所以缺少这个包也是会报异常的。如果使用的直接导入jar包的话,去下载joda-Jar导入即可,如果使用的是Maven管理项目的jar,那么在配置文件文件中加入依赖:
<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.3</version> </dependency>
第二需要在SpringMVC配置xml文件中(一般是dispatchServlet.xml文件)中加入配置:<mvc:annotation-driven />。这一句配置是一种简写,其实是给Spring容器中注入了两个Bena,分别是:DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter。@DateTimeFormat注解的内部同样需要使用到前面注入的两个bean去处理,所以缺少这个配置,Spring容器中没有对应的bean去处理注解同样也会报错。至此,所有的步骤都完成了,可以跑了。
接下来我们跑跑测试一下,测试过程:
首先需要一个表单:
<form action="test" method="post"> <input type="text" name="name"> <input type="text" name="birthday"> <input type="submit" name="提交"> </form>
用一个Controller接收:
@RequestMapping( "/test" ) public ModelAndView test(HttpServletRequest request, @ModelAttribute Person person) { ModelAndView view = new ModelAndView(); System.out.println(person.toString()); view.setViewName("/test/data"); return view; }
好了,总结一下整个过程,其实就3步:
1、 在Date类型的属性上加入@DateTimeFormat注解
2、 加入joda相关的包
3、 在SpringMVC配置文件中加入<mvc:annotation-driven />
相关文章推荐
- Java泛型 类型擦除
- SpringMVC处理AJAX请求
- struts2详解
- Java动态代理模拟spring的AOP
- Java解析XML文件的两种方式详解
- spring中aop的简单使用(Annotation方式)
- Java中的代理的使用
- Java中class是如何加载到JVM中的(Class.forName(&quot;name&quot;)和ClassLoader.loadClass(&quot;name&quot;)的区别)
- Java获取package下所有的class对象(普通文件包和Jar文件包)
- Java中交换两个数的各种方法
- Java开发前奏
- Java中的日期处理工具DateTime
- struts2 简介
- WAS7.0安装补丁升级程序无法替换文件 java/docs/autorun.inf解决办法
- WAS7.0安装补丁升级程序无法替换文件 java/docs/autorun.inf解决办法
- 【Java教程】 正确使用 Volatile 变量-潭州JAVA
- Struts2动态方法调用的方式...
- java抽象类和接口的区别
- java日期加减
- java源码分析之LinkedList