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 />
相关推荐
@RequestMapping可以配置请求的路径、请求方法类型(如GET、POST)、请求参数等。通过不同的配置,可以支持标准的URL映射,也可以支持Ant风格的URL,以及带有占位符的URL。 HTTP请求数据的绑定则涉及到如何将请求中...
- 在Spring MVC中,可以通过`@PathVariable`注解将URL中的路径变量绑定到方法参数上。例如: ```java @RequestMapping("/delete/{id}") public String delete(@PathVariable("id") Integer id){ System.out....
总结来说,处理Spring MVC返回Java 8日期时间JSON数据格式化问题,可以采用直接使用`jackson-datatype-jsr310`库并添加`@JsonFormat`注解,或者自定义`ObjectMapper`注册序列化器的方法。选择哪种方式取决于项目的...
- 在控制器方法中直接声明数组类型的参数,SpringMVC会自动将请求中的同名参数集合绑定到数组中。 ```java @RequestMapping(value = "/items", method = RequestMethod.GET) public String listItems(@...
5. **异常处理机制**:SpringMVC 提供了异常处理机制,可以通过简单的配置实现异常的统一处理。 #### SpringMVC框架的基本工作流程 1. **用户发起请求至前端控制器 DispatcherServlet**:这是整个流程的第一步,...
例如,方法可以接收类型为`HttpServletRequest`、`HttpServletResponse`、`Model`、`ModelMap`、`SessionStatus`、`HttpSession`等类型的参数,也可以返回字符串类型(视图名称)或者`void`类型。 #### 注册自己的...
9. **@Temporal**: 这个JPA注解用于处理日期和时间类型的字段,例如指定Date类型的属性在数据库中以TemporalType.DATE(只保存日期部分)或TemporalType.TIMESTAMP(保存日期和时间)的形式存储。 以上只是部分关键...
3. 实现转换逻辑:在process方法中,我们检查传入的值是否为Date类型。如果是,就用SimpleDateFormat类来进行日期格式化,将Date对象转换为字符串。如果值不是Date类型或为null,则直接返回。 4. 注册并使用转换器...
类似${jbbc.url}是一种访问变量的方法. 我们可以从 /WEB-INF/jdbc.properties 中找到这个变量的值. 如果你的数据库已经配置好, 就将第一个注释去掉. jdbc.properties: 1 jdbc.driverClassName=...
Java基础语法包括了数据类型的使用,例如基本数据类型和引用数据类型,变量的声明与使用,以及运算符的应用。控制流程方面,则需要掌握条件语句(if, switch)和循环语句(for, while, do-while)。 面向对象编程...
- **与WebWork整合**: FreeMarker可以与其他MVC框架如WebWork、SpringMVC等整合。 5. **高级方法** - **自定义方法**: 可以创建自定义的FreeMarker函数以扩展其功能。 - **自定义Transforms**: 自定义转换器...
时间类型转换:在Java中,处理时间类型通常会用到Date、Calendar、LocalDate等类,并且需要进行相应的类型转换。 阶乘:一个正整数的阶乘是所有小于及等于该数的正整数的积。 UE和UI的区别:UE是指用户体验(User ...
SpringMVC负责接收用户的请求,通过Controller进行业务逻辑处理,然后调用Service层的方法,Service层再利用MyBatis与数据库进行交互,完成数据的增删改查。MyBatis的灵活映射机制使得SQL编写更加直观,降低了数据库...
- SpringMVC的请求处理流程 - MyBatis SQL映射与动态SQL - **EasyUI/RBAC/shiro** - EasyUI组件库介绍 - RBAC权限管理模型 - shiro安全框架的应用 #### 七、企业级技术 - **Maven/Linux/逆向工程** - Maven...