当前位置: 首页 > news >正文

Spring MVC自定义类型转换器!!!

使用场景

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

 <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里面添加日期类型

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接口

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配置文件中配置类型转换器

<!--开启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>

 

相关文章:

  • DEJA_VU3D - Cesium功能集 之 113-获取圆节点(2)
  • mysql8.0 1055报错问题 [安装包]安装修改
  • 数据库开发与设计过程中的问题分析总结
  • 免费简单好用的 webshell 在线检测:支持 php、jsp、asp等多格式文件
  • 安全防御之密码技术
  • 【SPDK】【NoF】使用SPDK实现NVMe over Fabrics Target
  • vue实现小球掉落
  • 【Git】查看凭据管理器的账号信息,并删除账号,解决首次认证登录失败后无法重新登录的问题
  • 网络传输(TCP)
  • 微信小程序:flex常用布局
  • Windows pip install -r requirement.txt 太慢
  • 【grpc】利用protobuf实现java或kotlin调用python脚本,含实现过程和全部代码
  • MongoDB索引详解
  • 【C】void指针(通用指针)
  • 蚁群算法解决旅行商问题的完整Python实现
  • 谷歌浏览器安装不在默认安装位置Selenium无法打开解决方法
  • Machine Interrupt Registers
  • 响应式编程Reactor API大全(中)
  • Nacos:发现微服务的未来
  • mongo统计数据库和集合大小
  • 美国务卿会见叙利亚外长,沙特等国表示将支持叙利亚重建
  • 《制止滥用行政权力排除、限制竞争行为规定(修订草案征求意见稿)》公开征求意见
  • 独家 |《苏州河》上海上演,编剧海飞:上海的风能吹透我
  • 严打金融黑灰产,今年来上海警方破获各类经济犯罪案件690余起
  • 宝通科技:与宇树合作已签约,四足机器人在工业场景落地是重点商业化项目
  • 中东睿评|特朗普中东三国行:喧嚣的形式与空洞的实质