1.实现Converters<S,T>接口,重写convert(S)方法,convert(S)功能是将S类型的源数据转换成T类型的目标数据。
package com.testRecal.Converters;
import org.springframework.core.convert.converter.Converter;
import com.testRecal.entities.User;
public class MyConverter implements Converter<String ,User>{
@Override
public User convert(String arg0) {
User user=new User();
Object object[] =arg0.split(",");
user.setName((String) object[0]);
user.setBalance(Float.parseFloat((String)object[1]));
user.setAge(Integer.parseInt((String) object[2]));
return user;
}
}
注册类型转换器:
<bean id="converter" class="org.springframework.context.support.ConversionServiceFactoryBean">
<property name="converters">
<list>
<bean class="com.testRecal.Converters.MyConverter"></bean>
</list>
</property>
</bean>
<mvc:annotation-driven conversion-service="converter"></mvc:annotation-driven>
2.Formatter<T>和Converter<S,T>一样,也是一个可以将一种数据类型转换成另一种数据类型的接口,但不同的是Formtter<t>的源数据只能是String类型。需要重写两个方法。
public class MyForMatter implements Formatter<User> {
@Override
public String print(User arg0, Locale arg1) {
// TODO Auto-generated method stub
return null;
}
@Override
public User parse(String arg0, Locale arg1) throws ParseException {
// TODO Auto-generated method stub
return null;
}
}
public User parse(String arg0, Locale arg1)将一个字符串类型的数据转成目标类型并返回
public String print(User arg0, Locale arg1)恰恰相反,返回的是目标数据的字符串表示
在配置文件中注册转换器同1.