您的位置:首页 > 编程语言 > Java开发

struts2系列学习笔记(8)---------------类型转换

2011-01-21 10:54 465 查看
类型转换需求的来源:

表单中的数据是通过Action的属性来进行存储和传递的,但是作为Action的属性类型多样化,而表单数据直接获取出来的都是字符串类型,二者之间出现了不匹配的现象.

Struts2对类型转换的支持:

1.提供内置的类型转换器

所谓内置的类型转换器就是Strut2支持该类型的直接转换,无需额外的操作.具体包括如下类型:

String:将int,long,double,boolean,String类型的数组或java.util.Date类型转换为字符串

boolean/Boolean:在字符串和布尔类型之间进行转换

char/Character:在字符串和字符之间进行转换

int/Integer,float/Float,long/Long,double/Double:在字符串和数值型的数据之间进行转换

date:在字符串和日期类型之间进行转换

array

collection

2.自定义类型转换器

如果Struts2内置的类型转换器不能满足你的需求,你可以自定义类型转换器.以满足需求.

方法:

1)编写类型转换器类

2)配置类型转换器

1) 自定义类型转换器类编写的三种方式,最后一种方式最为常用:

1.实现ogn.TypeConverter接口

public Object convertValue(Map context,Object target,Member member,String propertyName,Object value,Class toType);

2.实现ognl.DefaultTypeConverter类(该类实现了ogn.TypeConverter接口)

public Object convertValue(Map context,Object value,Class toType);

3.实现org.apache.struts2.util.StrutsTypeConverter类(该类是ognl.DefaultTypeConverter类的子类,本身是一个抽象类)

public abstract Ojbect convertFromString(Map context,String[] values,Class toClass)

public abstract String convertToString(Map context,Object o)

2)配置类型转换器

类型转换器按照应用范围划分为2种配置

(1)全局范围的类型转换器

方法: 在CLASSPATH的根目录下创建一个名为xwork-conversion.properties的文件

在该文件中提供一个属性名值对,属性名为要转换的类的名称,属性值为类型转换器的类名称

(2)应用于特定类的类型转换器

方法:在特定类所在的包中创建一个名为ClassName-conversion.properties的文件(ClassName替换为实际的类名)

在该文件中提供一个属性名值对,属性名为要类的属性名,属性值为类型转换器的类名称
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: