struts转换:把字符串转成特定类型,把特定类型转成字符串
后台向前台页面传递值,jsp显示的时候会转换类型
简单类型转换,直接在action中定义,然后get/set即可
复杂类型转换:自定义类型转换器
首先定义一个class,继承DefaultTypeConverter类(实现了TypeConverter接口),然后重写里面的convertValue方法,两个参数Object value(需要转换的值),Class toType(需要转换的类型),返回转换结果(如果处理不了,return super.convertValue(value, toType)交给父类处理)
然后注册到struts2里面,才可以使用。有三种注册方式:
1、注册给action:action名字-conversion.properties 必须和action放在一个包内
里面定义action里面定义的名字 = 对应转换器的类 (遇到某个名字不能转换,交给对应的类转换)
2、全局转换器:xwork-conversion.properties
里面内容同上
3、注解
如果是List<自定义类>这种类型,则在转换器的properties就不能写变量名,需要写类名 = 对应的转换器
还有一种写法就是继承StrutsTypeConverter,convertFromString和convertToString,之前的DefaultTypeConverter是在一个方法里做两种转换,StrutsTypeConverter做了扩展,
是从DefaultTypeConverter做的继承并做了扩展,convertFromString是从字符串转化成目标类型,convertToString是把目标类型转化成字符串
如果遇到很复杂的,用request.setAttribute或session传值