实现步骤:
1.自定义转换器,实现Convert接口
package jv.springmvc.requestmapping;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.core.convert.converter.Converter;
public class UserConverter implements Converter<String, User>{
@Override
public User convert(String source) {
//User(String username, String email, int age, Address address, Date birth)
String[] src = source.split(",");
if(src!=null&&src.length==5) {
try {
String name = src[0];
String email = src[1];
int age = Integer.parseInt(src[2]);
Address address = new Address();
address.setProvince(src[3]);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
Date birth = sf.parse(src[4]);
return new User(name,email,age,address,birth);
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}
}
2.配置SpringMVC配置文件
<!-- 在实际开发中通常都需配置 mvc:annotation-driven 标签 -->
<mvc:annotation-driven conversion-service="conversionService"></mvc:annotation-driven>
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
<property name="converters">
<set>
<ref bean="userConverter"/>
</set>
</property>
</bean>
<bean id="userConverter" class="jv.springmvc.requestmapping.UserConverter"></bean>
3.目标方法使用@RequestParam注解
@RequestMapping("/testConversionService")
public String testConversionService(@RequestParam("user") User user) {
System.out.println("testConversionService"+user);
return SUCCESS;
}
4.编写HTML代码
<form action="rm/testConversionService" method="POST">
<input type="text" name="user" />
<input type="submit" value="submit" />
</form>
5.打印结果
说明已经成功将字符串借助SpringMVC的配置转成User对象
6.查看自定义转换器是否在converts中
这样做之后,就可以不适用表单,直接传入一个字符串就出来了一个对象。以后整合jquery的时候应该非常有用