上一段我们介绍了请求参数的绑定
SpringMVC请求参数的绑定
在请求参数绑定的时候,有时候会遇到一些问题,如自定义类型转换器异常

1.自定义类型转换器演示异常

现在有一个页面,想给服务器提交数据,现有uname,age,其中age是100.但是往后台提交的东西,100也是作为字符串来出现的,或者只要是页面,提交的任何数据,全部都是字符串类型的。在后台我们可以把数据全部都拿到。如果你提交的是一个字符串的话,后台类型是Integer,程序也没有报错,
springmvc内部中自动的进行了数据类型转换。
String-----Integer
即便字符串转日期,也是可以的,但是格式可能有些问题。
比如2020/11/11.可能会不报错,如果2020-11-11,可能不支持这个格式。
user类中有3个属性,还包括set和get方法,以及tostring方法

private String uname;
private Integer age;
private Date date;

index.jsp

<form action="param/saveUser" method="post">用户姓名:<input type="text" name="uname"/><br/>用户年龄:<input type="text" name="age"/><br/>用户生日:<input type="text" name="date"/><br/><input type="submit" value="提交"/>
</form>

controller

/*自定义类型转化器*/
@RequestMapping("/saveUser")
public String saveUser(User user){System.out.println(user);return "success";
}

在地址栏中输入




说明数据封装出错了,数据没封装进去,控制台没看到执行这个代码,在做类型转换的时候出错了

2.自定义类型转换器代码编写

第一步:定义一个类,实现Converter接口,该接口有两个泛型
public interface Converter<S,T>{
}

(注册好了类型转换器之后,就不会出错了,前端控制器会找类型转换器帮助我们将字符串转换成为我们的日期)
Converter类型转换总接口
Converter有很多实现类
这个接口有两个泛型,前面指的是字符串,后面指的是具体类型
如果T是日期,则字符串转换为日期
注意,导入的是这个包

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

代码


/*把字符串转换为日期*/
public class StringToDateConverter implements Converter<String,Date> {@Override/** 参数:传入过来的字符串* */public Date convert(String source) {if(source==null){throw new RuntimeException("请您传入数据");}else{DateFormat df=new SimpleDateFormat("yyyy-MM-dd");//把字符串转换为日期try {return df.parse(source);} catch (ParseException e) {throw new RuntimeException("数据类型转换出现了错误");}}}
}

第二步:在 spring配置文件中配置类型转换器
spring 配置类型转换器的机制是,将自定义的转换器注册到类型转换服务中去。

<!--配置自定义类型转换器-->
<bean id="conversionServiceFactoryBean" class="org.springframework.context.support.ConversionServiceFactoryBean"><!--我们需要把自己写的类型转换器注册一下--><property name="converters"><set><bean class="cn.yujie.utils.StringToDateConverter"/></set></property>
</bean>

第三步:在 annotation-driven标签中引用配置的类型转换服务,让类型转换器生效

<!--开启springmvc框架注解支持-->
<mvc:annotation-driven conversion-service="conversionService"/>


SpringMVC框架----SpringMVC的自定义类型转换器相关推荐

  1. ​ SpringMVC表单请求参数的绑定,配置编码过滤器解决请求参数中文乱码问题,自定义类型转换器

    文章目录 ​ SpringMVC的参数绑定支持的数据类型 基本数据类型和字符串类型 JavaBean 包装类 Map类型 List类型 POST请求参数中文乱码的解决方法 自定义类型转换器(Date类 ...

  2. springmvc二十一:自定义类型转换器

    ConversionService:是一个接口; 它里面有一个Converter(转换器)进行工作 ①实现一个Converter接口,写一个自定义的类型转换器 ②Converter是Conversio ...

  3. SpringMVC全局乱码过滤器、注解@RequestParam、自定义类型转换器

    目录 配置全局乱码过滤器 参数绑定注解@RequestParam 注解@RequestParam的参数使用说明 获得Restful风格的参数 自定义类型转换器 自定义转换器的开发步骤: 获得Servl ...

  4. 自定义类型转换器代码编写

    package com.learn.utils;import org.springframework.core.convert.converter.Converter;import java.text ...

  5. 解决中文乱码和自定义类型转换器

    一.解决maven项目创建过慢的问题: archetypeCatalog       internal 二.解决参数中文乱码的解决 在web.xml中配置Spring提供的过滤器类 <!--配置 ...

  6. SpringMVC-应用(数据绑定-自定义类型转换器,数据的格式化,数据校验)

    一.提出问题 SpringMVC封装自定义类型对象的时候,JavaBean要和页面提交的数据一一绑定.下面要知道: 1)页面提交的数据都是字符串 2)JavaBean中的属性如:Integer age ...

  7. 详解Spring MVC请求参数类型,解决中文乱码问题,自定义类型转换器,Spring MVC相关注解

    #SpringMVC SpringMVC请求 简单类型 简单类型包括:基本类型,基本类型的包装类型,字符串 编写Controller @RequestMapping("/param" ...

  8. java自定义类型转换器

    springMVC中有一些内置的数据类型转换器(内置转换器全都在: org.springframework.core.convert.support 包 下),可以从前端请求到服务器的自动转换. 部分 ...

  9. Struts2自定义类型转换器、自定义拦截器和用户输入数据的验证

    一.自定义类型转换器 1.编写一个类,继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter 2.覆盖掉其中的public Obj ...

最新文章

  1. leetcode51 N皇后
  2. Vue.js 状态管理
  3. python观察日志(part3)--绘制科赫雪花图
  4. python一个函数调用另一个函数的返回值_在python函数中使用True,False和None作为返回值...
  5. 查看进程占用内存cpu信息,Linux命令—TOP
  6. 投票最喜欢报表模板,赢取复联3正版玩偶
  7. 【心电信号】基于matlab心电图峰值检测【含Matlab源码 1548期】
  8. 基于Ntrip的实时多线程RTCM数据流接收及解码
  9. Bartender条码打印软件,提示30天以后该软件将会过期
  10. 生存分析原理简明教程 单因素生存分析 Kaplan-Meier、LogRank 只能针对单一的变量进行 多因素cox回归分析
  11. 游戏蛮牛unity权威指南全实例讲解书籍上线
  12. SQLMap常用命令介绍
  13. 网络邻居计算机访问权限设置,网上邻居计算机拒绝访问
  14. 《淘宝技术这十年》读书笔记 (一).淘宝网技术简介及来源
  15. 明天终于要到公司开工了
  16. (一)掰开了,揉碎了,说经典halcon中的那些算子
  17. 前备 正点原子以及野火stm32资料获取
  18. Gradle 2.0 用户指南翻译——第五十一章. 发布工件
  19. python学习02:利润计算
  20. IP地址转化(学习笔记)

热门文章

  1. 三星旗舰机系列名称即将更换 S10或成最后绝唱
  2. C语言教程第六章:指针(1)
  3. 图解后缀表达式的计算过程
  4. css3 display.,CSS3 display知识详解
  5. wincc与第三方软件opc通讯_OPC 通讯不得不说的强大软件
  6. 计算机应用基础形成性考核作业,计算机应用基础形成性考核作业1
  7. html canvas toblob 和下载图片
  8. mysql多类型查询_MYSQL中的多类型查询及高级查询操作
  9. 微信python课_微信课程提醒助手———python
  10. 消息中间件之ActiveMQ入门