SpringMVC自定义类型转换器

简介

SpringMVC上下文中内建了很多的类型转换器,可以完成绝大多数的Java类型的转换工作。
在这里插入图片描述


ConversionService是类型转换核心接口。
可以利用ConversionServiceFactoryBean在SpringIOC容器中定义一个ConversionService,
Spring将自动的识别IOC容器中的ConversionService,
并在bean属性配置以及SpringMVC处理方法入参绑定等场合使用这个ConversionService进行数据类型转换。
所以可以通过ConversionServiceFactoryBean的converters属性注册自定义类型转换器。


Spring支持的类型转换器

Spring中定义了三种类型转换的接口,实现任意一个接口都可以作为自定义的类型转换器,自定义的类型转换器注册到ConversionServiceFactoryBean中,类型转换器就生效了。

  • Converter<S,T> (常用的一种
  • ConverterFactory
  • GenericConverter

实例

  • 实体类
public class Student {
	
	private String name;
	private String sex;
	private Integer age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public Integer getAge() {
		return age;
	}
	public void setAge(Integer age) {
		this.age = age;
	}
	@Override
	public String toString() {
		return "Student [name=" + name + ", sex=" + sex + ", age=" + age + "]";
	}
}
  • 编写页面
	<form action="${pageContext.request.contextPath}/insertstu" method="post">
		<input type="text" name="student" value="YYY-Male-22">
		<button>Submit</button>
	</form>
  • 编写请求处理器的目标方法
@RequestMapping(value="insertstu",method=RequestMethod.POST)
	public String testConverter(@RequestParam("student") Student student) {
		
		System.out.println(student);
		
		return "success";
	}
  • 编写自动义的类型转换器
package com.nhkj.util;
import org.springframework.core.convert.converter.Converter;
import com.nhkj.entity.Student;

public class StringToStudentConverter implements Converter<String, Student> {
	@Override
	public Student convert(String arg0) {
		Student stu = new Student();
		
		//分割字符串
		String properties[] = arg0.split("-");
		
		stu.setName(properties[0]);
		stu.setSex(properties[1]);
		stu.setAge(Integer.parseInt(properties[2]));
		
		return stu;
	}

}

  • 配置文件

<!-- 配置ConversionFactoryBean 的 converters 属性 -->
 <bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
	  	<property name="converters">
	  		<set>
				<bean class="com.nhkj.util.StringToStudentConverter"></bean>
			</set>
	  	</property>
 </bean>
 <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
	  
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值