动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Spring MVC自定义类型转换器

08-20 17:34 59浏览
举报 T字号
  • 大字
  • 中字
  • 小字

我们在使用SpringMVC时,常常需要把表单中的参数映射到我们对象的属性中,我们可以在默认的spring-servlet.xml加上如下的配置即可做到普通数据类型的转换,如将String转换成Integer和Double等;虽然springMVC中自带类型转换器,但是有的时候我们需要自己去定义类型转换器来解决特殊的事情,比如一个jsp页面中的字符串转为一个Student类,我们就需要Spring MVC自定义类型转换器

1.若要定义类型转换器, 则需要实现Converter接口, 该Convert接口有两个泛型:第一个为待转换类型, 第二个为目标类型, 该接口方法convert用于实现转换.

  public class MyDateConverter implements Converter {

  

     public Date convert(String source) {

          SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

          try {

              return sdf.parse(source);

          } catch (ParseException e) {   

              e.printStackTrace();

          }

         return null;

     }

 

 }

2.类型转换器定义完毕后, 需要在配置文件中进行注册, 然后注册一个转换服务Bean, 将转换器注入给该Bean, 最后由处理器适配器来使用该转换服务器Bean. 该Bean由ConversionServiceFactory工厂创建, 工厂有Set集合属性, 可以提供多种转换功能的Bean来处理多种数据类型转换.

    

    

    

 

    

    

    

 

3.除此之外,我们还需要在springMVC配置文件中配置,如下让转换器生效







    



    

        

        

    



       



       

           

               

                   

               

           

       

编写好转换器后我们还需要对自定义的转换器进行测试:

1.新建一个one.jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

 

 

 

 

 

Insert title here

 

 

 

 

 

 

 

 

 

2.定义一个@RequestMapping(“mv12”)注释的方法

@RequestMapping("mv12")

public String mv12(@RequestParam("person") Student stu) {

System.out.println(stu);

//这里返回的页面不管它  我们直接输出上面的那个对象就可以了

return "ok";

}

3.访问one.jsp页面,输入1-lin-21 (1是id,lin是name,21是age - 是分隔符 看最上面的类)

4.查看控制台输出的数据类型

类型转换成功与否,取决于在jsp页面中我们传递给后台的数据类型和前台的数据类型是否一致。

Spring MVC自定义类型转换器不是生果常用的知识,我们不能因为Spring MVC自带类型转换器便觉得不需要学习如何自定义类型转换器,在很多特殊情况下我们需要根据需要来自定义Spring MVC转换器,毕竟自带的转换器不是万能的,而且一般效率都比较低。观看本站的Spring MVC视频教程了解更多的Spring MVC框架中的知识,将使你用Spring MVC框架开发起来更加熟练!

0人推荐
共同学习,写下你的评论
0条评论
携代码的男孩纸
程序员携代码的男孩纸

24篇文章贡献108038字

作者相关文章更多>

推荐相关文章更多>

DOM渲染的详细过程

QCode09-04 14:38

CSS水平和垂直居中技巧大梳理

Code大师09-04 14:50

mui的input框在IOS系统下无法聚焦或点击多次才能聚焦

不写代码你养我啊08-23 11:14

推荐的-视.频播放器以及在线客服

不写代码你养我啊09-17 18:02

谈谈java多线程的三大特性

要学习了06-18 18:13

发评论

举报

0/150

取消