springmvc Converter

以下,来自于Springmvc指南第二版,第93页。

Spring的Converter是可以将一种类型转为另一种类型。

例如用户输入的date类型可能有多种格式。

比如:在controller中接收一个LocalDate。

    @RequestMapping(value = "/test",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public String test(@RequestParam(required = false)LocalDate date){
        System.out.println("date = " + date);
        return date.toString();
    }

  注意:LocalDate,比较特殊点,不能new,前面必须要用 required=false,不用的话,spring会试图去new一个LocalDate,然后就会引发异常。

自定义Converter:

public class StringToLocalDateConverter implements Converter<String,LocalDate>{
    private String datePattern;

    public StringToLocalDateConverter(String datePattern) {
        this.datePattern = datePattern;
    }

    @Override
    public LocalDate convert(String s) {
        try {
            return LocalDate.parse(s, DateTimeFormatter.ofPattern(datePattern));
        }catch (Exception e){
            e.printStackTrace();
            throw e;
        }
    }
}

dispatcher-servlet.xml

<context:component-scan base-package="controller"></context:component-scan>

    <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
        <property name="converters">
            <set>
                <bean class="converter.StringToLocalDateConverter">
                    <constructor-arg type="java.lang.String" value="yyyy-MM-dd"/>
                </bean>
            </set>
        </property>
    </bean>

    <mvc:annotation-driven conversion-service="conversionService"/>

  

时间: 2024-10-13 23:00:40

springmvc Converter的相关文章

请求参数到表述层的类型转换——SpringMVC

一.不论是SpringMVC 的 JSR-303 数据校验还是自定义类型转换器,都需要配置 <mvc:annotation-driven/>,而添加这个配置后,会自动注册RequestMappingHandlerMapping. RequestMappingHandlerAdapter 与 ExceptionHandlerExceptionResolver  三个bean.在没添加前,正常的请求都是由 AnnotationMethodHandlerAdapter 进行处理的.我之前 的几篇文章

SpringMVC学习(五)——SpringMVC的参数绑定

SpringMVC中的参数绑定还是蛮重要的,所以单独开一篇文章来讲解.本文所有案例代码的编写均建立在前文SpringMVC学习(四)——Spring.MyBatis和SpringMVC的整合的案例基础之上,因此希望读者能仔细阅读这篇文章. 默认支持的数据类型 现在有这样一个需求:打开商品编辑页面,展示商品信息.这是我对这个需求的分析:编辑商品信息,需要根据商品id查询商品信息,然后展示到页面.我这里假设请求的url为/itemEdit.action,由于我想要根据商品id查询商品信息,所以需要传

SpringMVC——类型转换和格式化、数据校验、客户端显示错误消息

在介绍类型转换和格式化之前,我首先来介绍 <mvc:annotation-driven />. 需要导入的 schema: xmlns:mvc="http://www.springframework.org/schema/mvc" 一.作用: 1.会自动注册 RequestMappingHandlerMapping.RequestMappingHandlerAdapter 以及 ExceptionHandlerExceptionResolver 三个 Bean. 若配置该注

JAVAEE——SpringMVC第一天:介绍、入门程序、架构讲解、SpringMVC整合MyBatis、参数绑定、SpringMVC和Struts2的区别

1. 学习计划   第一天 1.SpringMVC介绍 2.入门程序 3.SpringMVC架构讲解 a) 框架结构 b) 组件说明 4.SpringMVC整合MyBatis 5.参数绑定 a) SpringMVC默认支持的类型 b) 简单数据类型 c) Pojo类型 d) Pojo包装类型 e) 自定义参数绑定 6.SpringMVC和Struts2的区别   第二天 1.高级参数绑定 a) 数组类型的参数绑定 b) List类型的绑定 2.@RequestMapping注解的使用 3.Con

SpringMVC基础知识

一.Spring MVC简介 1.1Spring MVC工作流程 映射器:主要是根据浏览器上输入的url来映射所有满足要求的Handle(控制器类) 适配器:主要是决定调用哪个Handler来实现具体的业务逻辑 1.2Spring MVC VS Struts2 1)springmvc的入口是一个servlet,即前端控制器: struts2入口是一个filter过虑器,即前端过滤器, 2)springmvc是基于方法开发(控制器类是单例的,不可能维护实体变量),传递参数是通过方法形参,可以设计为

SSM整合2(springMVC+mybatis)

客户在浏览器端会提交一些参数到服务器端,比如用户的登录等,就会传username 和 password过来,springmvc则通过参数绑定组件将请求参数的内容进行数据转换,然后将转换后的值覆给controller方法的形参,这就是参数绑定的过程.其实,springmvc就是使用controller方法形参来接收请求的参数 一.默认支持参数 处理器形参中添加如下类型的参数处理适配器会默认识别并进行赋值. 1.1. HttpServletRequest 通过request对象获取请求信息 1.2.

Spring MVC HttpMessageConverter&lt;T&gt;

SpringMVC 处理 JSON 由于现在我们使用 Ajax 的机会非常多,所以我们有必要来看一下 SpringMVC 是如何处理 JSON 格式的数据的. 我们先来看一个处理 JSON 的程序,再来分析它其中的原理 创建 Employee 实体类 package com.bupt.springmvc.converter.entity; import javax.validation.constraints.Past; import org.hibernate.validator.constr

Spring MVC4 + Spring Security4 + Hibernate实例

http://www.yiibai.com/spring-security/spring-mvc-4-and-spring-security-4-integration-example.html 在这篇教程文章中,我们将使用Spring Security,Hibernate+MySQL数据库来集成构建一个成熟的Spring MVC应用程序.处理多对多映射关系,同时利用BCrypt格式加密密码存储,和使用自定义PersistentTokenRepository实现Hibernate Hiberna

Spring4 MVC+Hibernate4 Many-to-many连接表+MySQL+Maven实例

这篇文章显示 Hibernate 的多对多实例,在 Spring MVC CRUD Web应用程序中连接表.我们将同时讨论管理多对多关系在视图和后端. 我们将使用应用程序的Web界面创建,更新,删除和查询. 本教程是利用 Spring 的 org.springframework.core.convert.converter.Converter 接口,它帮助我们在项目的数据库中实现实体的映射标识. 完整的示例的说明介绍如下. 使用以下技术: Spring 4.1.7.RELEASE Hiberna