Struts2的类型转换器是基于OGNL表达式的,只要我们把HTML输入项命名为合法的表达式,就可以充分的利用Struts2内建的表达式机制。
1、Struts2内建的类型转换器
String、boolean/Boolean char/Chatacter
Date 数组类型
2、使用集合类型转换时,可以(也可以不用,最好添加一个)添加一个ActionName-conversion.propertites文件,文件内容为Element_xxx=entity.XXXX;其中xxx为Action类中创建的集合对象,entity.XXXX为目标类型。该文件的位置为相关Action的同目录下,都在一个包里。如果不用配置文件,则需要使用泛型来指定目标类型。如List<User>
3、使用OGNL表达式和复合类型时,在表单中name属性和数据校验配置文件中要指定为“类型名.属性名”,否则无法识别。
4、类型转换异常拦截器。
Element_registers=entity.Register
Invalid.foeldvalue.register[*].userAge=年龄必须为整数
5、自定义类型转化器
如果系统内建的类型转换器不能满足用户的要求,则可以自定义一个类型转换器。自定义类型转换器需要继承DefaultTypeConverter类,并重写convertValue()方法。或者使用struts2自带的类StrutsTypeConvert类,来简化编写。StrutsTypeConvert提供了两个抽象方法convertToString和convertFromString,实现这两个方法,便可实现类型转换。然后通过properties文件注册即可。自定义类型转换器需要明确三个参数,一是哪个Action中的属性需要转化,而是Action中哪个属性需要转换,三是转换的实现类是哪个,这些信息都可以在对应的.properties文件中体现出来。