Spring MVC的类型转换器(ConversionServiceFactoryBean)

使用场景

在index.jsp里面添加日期类型

java 复制代码
<form action="account/saveAccount" method="post">
      账户名称:<input type="text" name="name"><br/>
      账户金额:<input type="text" name="money"><br/>
      账户省份:<input type="text" name="address.provinceName"><br/>
      账户城市:<input type="text" name="address.cityName"><br/>
      开户日期:<input type="text" name="date"><br/>
      <input type="submit" value="保存">
    </form>

在pojo里面添加日期类型

java 复制代码
public class Account implements Serializable {
    private Integer id;
    private String name;
    private Float money;
    private Address address;
    //添加日期类型
    private Date date;
    //省略get set toString方法,需要自己引用
} 

测试

  • 原因

    我们前台传递的是字符串类型的参数,但是后台使用的是Date类型接收的。我们期望springmvc可以帮我们做数据类型的自动转换,显然没有做,所以我们需要自己自定义类型转换器。

自定义类型转换器

Converter接口说明:

定义一个类,实现Converter接口
java 复制代码
public class DateConverter implements Converter<String, Date> {
    @Override
    public Date convert(String source) {
        try {
            DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            return format.parse(source);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
}
在 springmvc.xml配置文件中配置类型转换器
XML 复制代码
<!--开启springmvc注解支持-->
    <mvc:annotation-driven conversion-service="cs"></mvc:annotation-driven>
    <!-- 配置类型转换器工厂 -->
    <bean id="cs"
          class="org.springframework.context.support.ConversionServiceFactoryBean">
        <!-- 给工厂注入一个新的类型转换器 -->
        <property name="converters">
            <set>
                <!-- 配置自定义类型转换器 -->
                <bean class="com.by.converter.DateConverter"></bean>
            </set>
        </property>
    </bean>
相关推荐
num_killer6 小时前
小白的Langchain学习
java·python·学习·langchain
期待のcode7 小时前
Java虚拟机的运行模式
java·开发语言·jvm
程序员老徐7 小时前
Tomcat源码分析三(Tomcat请求源码分析)
java·tomcat
a程序小傲7 小时前
京东Java面试被问:动态规划的状态压缩和优化技巧
java·开发语言·mysql·算法·adb·postgresql·深度优先
仙俊红7 小时前
spring的IoC(控制反转)面试题
java·后端·spring
阿湯哥7 小时前
AgentScope Java 集成 Spring AI Alibaba Workflow 完整指南
java·人工智能·spring
廋到被风吹走7 小时前
【Spring】Spring Cloud 熔断降级深度解析:从 Hystrix 到 Resilience4j 的演进
spring·spring cloud·hystrix
小楼v7 小时前
说说常见的限流算法及如何使用Redisson实现多机限流
java·后端·redisson·限流算法
与遨游于天地8 小时前
NIO的三个组件解决三个问题
java·后端·nio
fenglllle8 小时前
spring-data-jpa saveall慢的原因
数据库·spring·hibernate