1.配置自定义转换器到FormattingConversionServiceFactoryBean工厂中
<!-- 将ConversionService再作为annotation-driven的一个属性存在! -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<!-- 配置ConversionService -->
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<ref bean="employeeConverter"/>
</set>
</property>
</bean>
注意bean和annotation-driven的顺序不要搞反,使用框架很多东西都是写死的。
手写一个类EmployeeConverter继承Converter<String, User>接口
覆盖父方法
@Override
public User convert(String source) {
User user=new User();
if(source != null){
String[] vals = source.split("-");
if(vals != null ){
String name = vals[0];
String email = vals[1];
String mark=vals[2];
String address=vals[3];
user.setName(name);
user.setAddress(address);
user.setEmail(email);
user.setMark(mark);
return user;
}
}
return null;
}
controller层注入和调用:
@Autowired
private EmployeeConverter employeeConverter;
@RequestMapping(value="/toConverter",method=RequestMethod.POST)
public String toConverter(@RequestParam(value="source")String source,ModelMap map){
map.put("user", employeeConverter.convert(source));
//map.addAttribute("user", employeeConverter.convert(source));
return "list";
}
提交jsp代码:
<form method="post" action="${pageContext.request.contextPath }/toConverter">
请输入用户名、邮箱、备注、地址,用-隔开<input type="text" name="source"><br>
<input type="submit" value="提交">
</form>
接收jsp代码:
${user.name}${user.address}${user.mark}${user.email}