1.类型转换
为什么要进行类型转换?
以前在页面得到的表单值一般在Action里处理成相应的javaBean,今天重新看书,发现struts2里有一个类型转换类,专门处理由页面里的值到action类的属性,如果是基本类型和date以及String类,struts2自动转换成对应的action属性,但是如果action属性是一个javabean,那么按照设计原则,应该在传到action之前,页面里的值都已经包装成类的属性,再由struts2框架子栋赋值到action,由此就有了类型转换。
方式:
自定义的类型转换类有两种存在方式:一种针对于某个Action的转换,转换其中的一个或者多个属性,双向转换;另外一种是存在全局的转换,不针对某个,通用转换器。一般使用第一种。
具体方法:继承ognl.DefaultTypeConverter类或者org.apache.struts2.util.StrutsTypeConverter这个类继承前者。第一个类两个参数,传入值和转出值。需要根据转出值的类型Class属性来判读是何种转换,对应方法都是有的。而第二个类就是用两个方式拆开来处理两个方向的转换。
配置文件格式:Action名字-conversion.properties,注意后面全是小写,写错了报错很多。
需要注意的问题是:在页面上得到的表单全是字符串数组传入的,转换的时候就要强行转换成字符串数组,然后进行处理。返回的时候也是一样以字符串的形式返回通常采用字符串拼接一下。
具体例子参照此篇博文:http://www.cnblogs.com/kreo/archive/2009/08/12/1544403.html