我们在使用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框架开发起来更加熟练!
QCode09-04 14:38
Code大师09-04 14:50
不写代码你养我啊08-23 11:14
不写代码你养我啊09-17 18:02
要学习了06-18 18:13