SpringMVC中的自定义类型转换器
该篇博客记录的我在学习MyBatis时,学习到InternalResourceViewResolver的一个小知识点。因为此功能的步骤基本就是有靠记忆记住的,所以写这篇供参考
InternalResourceViewResolver的其他功能,第五小点:
(1)Spring自带一些常见的类型转换器:
例如一些INTEGER(int)类型 ------也可以用String类型接收。[其他一些百度查找哈];
(2)自定义类型的转化器:
i.编写自定义类型转换器的类(实现Converter接口)
public class MyConverter implements Converter<String, Student> {//<S,T>:source,target public Student convert(String source) {//source:2-zs-23 String[] studentStrArr = source.split("-"); Student student = new Student(); student.setId(Integer.parseInt(studentStrArr[0])); student.setName(studentStrArr[1]); student.setAge(Integer.parseInt(studentStrArr[2])); return student; } }
如果这段代码出现convert(arg0,arg1),就将源码导入,便可看到参数。如果出现两个Object:public Object convert(Object arg0),则将Converter要转换的泛型参数加进去即可。
ii.配置:将MyConverter加入到SpringMVC中去:
<!-- 1.将 自定义转换器纳入SpringIOC容器 -->
<bean id="myConverter" class="cn.edu.xit.converter.MyConverter"></bean>
<!-- 2.将myConverter再纳入SpringMVC提供的Bean中 -->
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<set>
<ref bean="myConverter"/>
</set>
</property>
</bean>
<!-- 3.将conversionService注册到annotation-driven -->
<!-- 此配置是SpringMvc的基础配置,很多功能都需要通过该注解来协调 -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
iii.测试转换器:
//自定义类型转换器 @RequestMapping(value="testConverter") public String testConverter(@RequestParam("studentInfo") Student student){ System.out.println(student.getId()+"-"+student.getName()+"-"+student.getAge()); return "sucess"; }
其中@RequestParam("studentInfo")是触发转换器的桥梁,该注解接收的数据是前端传递过来的:2-zs-23,但是需要将该数据赋值给修饰的目标对象(student);

浙公网安备 33010602011771号