码迷,mamicode.com
首页 > 编程语言 > 详细

SpringMVC处理Date类型的成员变量方法

时间:2019-02-03 12:42:55      阅读:195      评论:0      收藏:0      [点我收藏+]

标签:ada   art   class   https   pat   time   action   value   lang   

在使用 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 的格式,如下所示:

public classPerson{

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 />

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

SpringMVC处理Date类型的成员变量方法

标签:ada   art   class   https   pat   time   action   value   lang   

原文地址:https://www.cnblogs.com/skinchqqhah/p/10349901.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!