从前台页面输入传入后台的数据都是字符串类型的,但,有时候我们需要不只是字符类型,还有int,double等,所以这时候就得类型转换!!!
有struts2可以自己转换的,有些是不可以的,需要手动转换。
1、struts2内建类型转换器
boolean和Boolean:完成字符串和布尔值之间的转换
char和Character:完成字符串和字符之间的转换
int和Integer:完成字符串和整型值之间的转换
long和Long:完成字符串和长整型值之间的转换
float和Float、double和Double:完成字符串和实数的转换
Date
等
这些都不需要自己去转换,struts2自动完成
2、自定义类型转换器
当需要转换成对象时,就需要手动转换啦!
有两种方法
第一:继承DefaultTypeConverter,重写converValue(Map context, Object value, Class toType),需要自己判断
if(toType == 对象.class)就是从字符串转换成对象
if (toType == String.class) 就是从对象转换成字符串
第二:继承StrutsTypeConverter,不需要自己判断,重写convertFromString()方法,是转换对象,重写convertToString()方法,是转换string
且自定义时,还有局部类型转换和全局类型转换。
局部类型转换:在需要转换的包下创建xxx-conversion.properties文件(file)xxx为某个需要转换属性的action
在文件写:属性=用来转换的action
#point=com.test.converter.PointConverter
全局:xwork-conversion-properties 操作同上
#com.test.bean.Point=com.test.converter.PointConverter2