SpringMVC数据类型转换

来源:互联网 发布:如何做小吃生意知乎 编辑:程序博客网 时间:2024/06/11 00:56

在以往我们需要SpringMVC为我们自动进行类型转换的时候都是用的PropertyEditor。通过PropertyEditor的setAsText()方法我们可以实现字符串向特定类型的转换。但是这里有一个限制是它只支持从String类型转为其他类型。在Spring3中引入了一个Converter接口,它支持从一个Object转为另一个Object。除了Converter接口之外,实现ConverterFactory接口和GenericConverter接口也可以实现我们自己的类型转换逻辑。

1.自定义类型转换器实现Converter接口,如果输入的值是user的话,将String类型转换为User。

import org.springframework.core.convert.converter.Converter;import org.springmvc.entity.User;public class UserConverter implements Converter<String, User> {public User convert(String str) {if(str != null){User user = new User();if(str.equals("user")){user.setId(10);user.setUsername("lisi");user.setPasssword("123456");user.setEmail("asd.huawei.com");user.setAge(18);}return user;}return null;}}

2.在springmvc配置文件中配置ConverterService

<mvc:annotation-driven conversion-service="conversionService"/><!-- 自定义类型转换器 --><bean id="userConverter" class="org.springmvc.converter.UserConverter"></bean><!--配置ConversionService --><bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean"><property name="converters"><set><ref bean="userConverter"/></set></property></bean>

jsp代码:

<form action="testConverter" method="post">user:<input type="text" name="user" value="user"/><input type="submit" value="submit"/></form>

controller:

@RequestMapping("testConverter")public String testConverter(User user){System.out.println(user);return "success";}

结果:

User [id=10, username=lisi, passsword=123456, age=18, email=asd.huawei.com]
0 0
原创粉丝点击