Spring MVC自定义类型转换器
程序员文章站
2022-07-15 13:23:41
...
Spring MVC自定义类型转换器一般分为以下几步:
- 定义一个类实现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入门学习
下一篇: java final parameter
推荐阅读
-
Spring MVC自定义日期类型转换器实例详解
-
HandlerMethodArgumentResolver(二):Map参数类型和固定参数类型【享学Spring MVC】
-
HandlerMethodArgumentResolver(三):基于消息转换器的参数处理器【享学Spring MVC】
-
Spring MVC自定义数据绑定--HandlerMethodArgumentResolver
-
spring mvc 表单映射date类型字段的问题
-
Spring MVC之返回类型
-
Spring MVC自定义类型转换器
-
【Spring Boot学习总结】11.Web开发-自定义Spring MVC配置
-
Spring 自定义类型转换器
-
Spring MVC自定义类型转换器