首先要编写一个类型转换器,即一个继承了ognl的DefaultTypeConverter类的类,该类要重写convertValue方法
然后定义一个属性文件,让struts2知道你要对你的action中哪个成员变量进行类型转换(无级次限制,即可对成员变量里的属性进行深层次转换)
该属性文件命名有要求:youractionname-conversion.properties,并且要与你的action类在同一个包下
该文件内容如下面形式(假设你的action有一个coordinate属性,它是一个自定义类型,该类中又有一个名字为user的自定义类型。。。以此类推)
coordinate =org.act.modules.type.CoordinateTypeConverter
coordinate.user =org.act.modules.type.UserTypeConverter
对于全局类型转换,需要将properties文件放在src目录下,即classpath根目录
并且properties文件内容与局部的文件内容稍有不同
bean.User = org.xxx.xxx.*Converter
等号左边不在是某个action的属性名,而是需要被转换的类型对应的class类全域名
PS:类型转换可逆,即也可以用于后台向前台渲染时的转换,另推荐继承StrutsTypeConverter,该类更方便