SpringMVC 传参定义类型转换

SpringMVC 中的转换器

表单提交的任何数据类型全部都是字符串类型,但是后台定义接收类型是 Integer 类型,数据也可以封装上,说明 Spring 框架内部会默认进行数据类型转换。

自定义类型转换器

SpringMVC 传参定义类型转换

已知有自带的类型转换器,但在特殊情况下可能并不能满足需要,那如何自定义使用类型转换器呢?

例如,前台输入 2019/08/08 在后端可以被 Date 接收,但是前台传的是 2019-08-08 怎么办,直接写会报错,转换器代码如下:

import org.springframework.core.convert.converter.Converter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 自定义日期转换 Converter 中泛型第一个指转换的原类型,第二个是目标转换类型
 */
public class StringToDateConverter implements Converter<String, Date> {
    /**
     * 进行类型转换的方法
     */
    @Override
    public Date convert(String source) {
// 判断 source 其实就是值 SpringMVC 传来的值
        if(source == null) {
//            运行时异常 运行出错停止运行
            throw new RuntimeException(" 参数不能为空 ");
        }try {DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
// 解析字符串
            Date date = df.parse(source);
            return date;
        } catch (Exception e) {throw new RuntimeException(" 类型转换错误 ");
        }
    }
}

开始在 springmvc.xml 中配置自定义的转换器

<!-- 注册自定义类型转换器 -->
<bean id="conversionService"
class="org.springframework.context.support.ConversionServiceFactoryBean">
	<property name="converters">
        <set>
            <bean class="com.cway.utils.StringToDateConverter"/>
        </set>
	</property>
</bean>
<!-- 开启 Spring 对 MVC 注解的支持 增加类型转换器 -->
<mvc:annotation-driven conversion-service="conversionService"/>
目录
  • SpringMVC 中的转换器
  • 自定义类型转换器
  • 目录
  • SpringMVC 中的转换器
  • 自定义类型转换器
  • 手机扫描二维码访问

    本文标题:《SpringMVC 传参定义类型转换》作者:极四维博客
    原文链接:https://cway.top/post/556.html
    特别注明外均为原创,转载请注明。

    分享到微信

    扫描二维码

    可在微信查看或分享至朋友圈。

    相关文章

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    «    2024年10月    »
    123456
    78910111213
    14151617181920
    21222324252627
    28293031

    搜索

    控制面板

    您好,欢迎到访网站!
      查看权限

    最新留言

    文章归档

    • 订阅本站的 RSS 2.0 新闻聚合