springMVC自定义类型转换

目录

🍋🍊自定义的转换类

🍋🍊xml文件中添加配置

🍋🍊测试

SpringMVC 底层已经封装了很多的类型转换器,也就是为什么我们页面上传的字符串可以使用 Integer接收或者可以直接转换为数组的原因。 并不是所有类型的字符都可以正常转换,比如日期字符 "yyyy/mm/dd" 可以正常转换,而 "yyyy-mm-dd" 就不能转换。

针对特殊情况,我们使用自定义类型转换器进行处理

创建一个类实现converter<S,T>接口并重写 converter()方法。

注意converter接口所在包:import org.springframework.core.convert.converter.Converter;

自定义的转换类

java 复制代码
package com.soft.component;

import org.springframework.core.convert.converter.Converter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;


public class StringtoDateConverter implements Converter<String,Date> {

    public Date convert(String s) {
        //非空判断
        if(s == null || "".equals(s)){
            return null;
        }
        //设置格式,解决传给后台的s字符串形如:xxxx-xx-xx,我们处理成xxxx/xx/xx
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd");
        String str = s.replaceAll("-", "/");
        Date date = null;
        try {
            date = simpleDateFormat.parse(str);
        } catch (ParseException e) {
            throw new RuntimeException(e);
        }
        return date;
    }
}

泛性中的类型,第一个为接收来的数据的类型,第二个为要转换为的类型

比如:现在我们要将接受来的字符串类型数据,处理转换为Date类型,所以写为 Converter<String,Date>

xml文件中添加配置

html 复制代码
<!-- 类型转换器服务工厂 -->
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<!--把自定义类型转换器注册到服务中-->
<bean class="com.soft.converter.StringToDateConverter"/>
</set>
</property>
</bean>

测试

相关推荐
她的男孩3 分钟前
同一个接口,为什么销售只看到自己的订单?我拆了 681 行数据权限拦截器的源码
java·后端·架构
卓怡学长10 分钟前
w157基于springboot北部湾地区助农平台
java·spring boot·spring·maven·intellij-idea
小白羊丨12 分钟前
问数 Agent 整体架构、意图识别、历史上下文与 NL2SQL
java·面试·架构
Linux-lucky20 分钟前
33-Linux学习之旅之MySQL用户管理
java·linux·运维·学习·mysql·ubuntu
SimonKing25 分钟前
将cURL 命令直接变成 Java 代码?用JQuick-Curl搞起来
java·后端·程序员
大牧师29 分钟前
Nest.js 微服务入门教程
开发语言·javascript·后端·微服务·node.js·nest.js·nest
格林威33 分钟前
C# 图像异步落盘存储:基于Channel 配合 ArrayPool 实现异步落盘
开发语言·人工智能·数码相机·机器学习·计算机视觉·c#·视觉检测
软件黑马王子33 分钟前
11.缓存池优化:窗口布局
开发语言·前端框架·c#
凤山老林34 分钟前
企业级文件服务中台:Spring Boot 集成 MinIO 实现分片存储、生命周期管理与多租户隔离
java·spring boot·后端·minio·文件服务
青山木35 分钟前
Hot 100 --- 买卖股票的最佳时机
java·数据结构·算法·leetcode·贪心算法