Spring MVC自定义类型转换器
2017-11-09 02:15
417 查看
Spring MVC自定义类型转换器一般分为以下几步:
定义一个类实现Converter接口,其中接口主要内容是实现两个类型之间的转换。
在Spring MVC的配置文件中将刚才添加的Converter类进行配置。
在@RequestMapping修饰的方法中使用Converter进行转换之后的类型入参。
下面看一个示例:
首先我们定义了一个实现Converter接口的对象,这里我们的UserConverter将一个String类型的变量直接转换成User类型,User中间包含有username、password、age、Address这几个属性,我们将一个字符串以”-“进行分割进而对相应位置的属性进行复制,代码中有很多不完善的地方,这里只是对Converter的使用进行展示:
然后我们在Spring MVC的配置文件中对上述Converter进行配置:
这个配置大概分为了两步:
将自定义的UserConverter类型配置到ConversionServiceFactoryBean中。
将上述bean 配置到Spring MVC的上下文中
然后就只需要使用了,我们在jsp页面上添加一个表单,并设置一个String类型名为user 的输入。
并在一个@Controller中处理这个请求:
这样在用户信息一栏输入类似于“xiaoming-123456-11-河北-邯郸”的输入就可以在@Controller中直接得到一个包含这些信息的User对象了。
定义一个类实现Converter接口,其中接口主要内容是实现两个类型之间的转换。
在Spring MVC的配置文件中将刚才添加的Converter类进行配置。
在@RequestMapping修饰的方法中使用Converter进行转换之后的类型入参。
下面看一个示例:
首先我们定义了一个实现Converter接口的对象,这里我们的UserConverter将一个String类型的变量直接转换成User类型,User中间包含有username、password、age、Address这几个属性,我们将一个字符串以”-“进行分割进而对相应位置的属性进行复制,代码中有很多不完善的地方,这里只是对Converter的使用进行展示:
package club.sean.converter; import club.sean.entities.Address; import club.sean.entities.User; import org.springframework.core.convert.converter.Converter; import org.springframework.stereotype.Component; @Component public class UserConverter implements Converter<String , User>{ @Override public User convert(String s) { //格式应该为以-分割 if (s.length()==0){ return new User(); } String[] properties=s.split("-"); if (properties.length>0){ User user=new User(); user.setUsername(properties[0]); user.setPassword(properties[1]); user.setAge(Integer.parseInt(properties[2])); Address add=new Address(); add.setProvince(properties[3]); add.setCity(properties[4]); user.setAddress(add); return user; } return new User(); } }
然后我们在Spring MVC的配置文件中对上述Converter进行配置:
<bean id="conversionService" class="org.springframework.context.support.ConversionServiceFactoryBean" > <property name="converters"> <set> <ref bean="userConverter"></ref> </set> </property> </bean> <mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
这个配置大概分为了两步:
将自定义的UserConverter类型配置到ConversionServiceFactoryBean中。
将上述bean 配置到Spring MVC的上下文中
然后就只需要使用了,我们在jsp页面上添加一个表单,并设置一个String类型名为user 的输入。
<form action ="/conversionService" method="post"> 用户信息:<input type="text" name="user" /> <input type="submit" name="submit "/> </form>
并在一个@Controller中处理这个请求:
@RequestMapping("/conversionService") public String ConversionService(@RequestParam(value = "user") User user){ System.out.println(user); return "success"; }
这样在用户信息一栏输入类似于“xiaoming-123456-11-河北-邯郸”的输入就可以在@Controller中直接得到一个包含这些信息的User对象了。
相关文章推荐
- spring MVC (7) 定义自定义类型转换器
- Spring MVC__自定义日期类型转换器
- Spring MVC自定义日期类型转换器实例详解
- Spring MVC自定义消息转换器(可解决Long类型数据传入前端精度丢失的问题)
- Struts2实现自定义转换器和全局类型转换器
- Mybatis实现自定义的类型转换器TypeHandler
- Spring MVC JSON自定义类型转换(续)
- MyBatis自定义类型转换器
- 基于Struts 2的自定义类型转换器
- Struts2学习5--自定义类型转换器(1)
- Spring MVC JSON自定义类型转换
- 自定义类型转换器之TypeConverter
- asp.net控件开发基础(9) ----------再谈属性,学习自定义类型转换器
- Struts2笔记之自定义封装请求参数的数据类型转换器
- Spring MVC JSON自定义类型转换
- AutoMapper官方文档(十一)【自定义类型转换器】
- Spring MVC JSON自定义类型转换
- struts2 自定义类型转换器
- struts2实现自定义数据类型转换器
- 学习SpringMVC(十七)之自定义类型转换器