Struts2类型转换器

来源:互联网 发布:心理变态有多可怕,知乎 编辑:程序博客网 时间:2024/05/22 05:00

structs2自动类型转换

从request里接收的值都是String类型的,而Action的属性可以是各种类型的。因此需要Struts2的类型转换机制来支持。
使用自定义的类型转换器:页面上传入的String类型的值,action的属性可以是各种类型的变量来接收(类型转换器接收String类型的值后注入给action的属性)。
用struts2标签输出action的属性值时(如<s:property value="rectangle"/>),会再次调用转换器变成String类型值输出。

自定义类型转换器:

a、写一个类,继承org.apache.Struts2.util.StrutsTypeConverter抽象类。实现两个方法:

1.convertFromString(),实现字符串向对象的转换。
其中context表示转换上下文,可以在里面引用各种对象,如通过context.get(ValueStack.VALUE_STACK)来引用值栈。
values表示用户输入的字符串。
toClass表示将要被转换成的对象类型。

2.convertToString(),实现对象向字符串的转换。
其中context表示转换上下文,o表示需要被转换的对象。

b、注册此自定义的类型转换器(为action配置转换器)。

在src下建立一个xwork-conversion.properties文件,这个文件中用“全类名=这个类对应的类型转换器全类名”,来建立类和类型转换器的关系。

 如:org.cendy.Rectangle=org.cendy.convert.RectangleConverter

c、action不需要做任何的处理,即使用自定义类型转换器时,对action没有影响。

action中:如private Rectangle rectangle;

原创粉丝点击