開始學(xué)習(xí)struts2(四)
關(guān)于類型轉(zhuǎn)換還有一種寫法:
原來是繼承ognl.DefaultTypeConverter類,現(xiàn)在改成繼承org.apache.struts2.util.StrutsTypeConverter類了,看org.apache.struts2.util.StrutsTypeConverter的源碼可知道org.apache.struts2.util.StrutsTypeConverter是個抽象類,并實現(xiàn)了ognl.TypeConverter,org.apache.struts2.util.StrutsTypeConverter中有兩個要實現(xiàn)的方法一個convertFromString,一個convertToString,看方法名字就知道一個從字符串轉(zhuǎn)換成Object,一個是將Object轉(zhuǎn)換成String,這樣好像更加清晰
另外還有一種全局轉(zhuǎn)換的配置,就是建立一個統(tǒng)一的屬性文件,文件名為xwork-conversion.properties,與struts.xml位于統(tǒng)一目錄下,里面的配置改成了
com.test.struts2.data.Point=com.test.struts2.action.ConverterPoint
意思是所有com.test.struts2.data.Point類型的對象都要通過com.test.struts2.action.ConverterPoint來轉(zhuǎn)換
public class ConverterPoint extends StrutsTypeConverter {
// @Override
// public Object convertValue(Map context, Object value, Class toType) {
// if(Point.class == toType){
// String[] params = (String[])value;
// params = params[0].split(",");
// Point point = new Point();
// point.setX(Integer.parseInt(params[0]));
// point.setY(Integer.parseInt(params[1]));
// return point;
//
// }else if(String.class == toType){
// Point point = (Point)value;
// return "x=" + point.getX() + ",y=" + point.getY();
// }
// return super.convertValue(context, value, toType);
// }
@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
String[] params = arg1;//(String[])value;
params = params[0].split(",");
Point point = new Point();
point.setX(Integer.parseInt(params[0]));
point.setY(Integer.parseInt(params[1]));
return point;
}
@Override
public String convertToString(Map arg0, Object arg1) {
Point point = (Point)arg1;
return "x=" + point.getX() + ",y=" + point.getY();
}
}
// @Override
// public Object convertValue(Map context, Object value, Class toType) {
// if(Point.class == toType){
// String[] params = (String[])value;
// params = params[0].split(",");
// Point point = new Point();
// point.setX(Integer.parseInt(params[0]));
// point.setY(Integer.parseInt(params[1]));
// return point;
//
// }else if(String.class == toType){
// Point point = (Point)value;
// return "x=" + point.getX() + ",y=" + point.getY();
// }
// return super.convertValue(context, value, toType);
// }
@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
String[] params = arg1;//(String[])value;
params = params[0].split(",");
Point point = new Point();
point.setX(Integer.parseInt(params[0]));
point.setY(Integer.parseInt(params[1]));
return point;
}
@Override
public String convertToString(Map arg0, Object arg1) {
Point point = (Point)arg1;
return "x=" + point.getX() + ",y=" + point.getY();
}
}
原來是繼承ognl.DefaultTypeConverter類,現(xiàn)在改成繼承org.apache.struts2.util.StrutsTypeConverter類了,看org.apache.struts2.util.StrutsTypeConverter的源碼可知道org.apache.struts2.util.StrutsTypeConverter是個抽象類,并實現(xiàn)了ognl.TypeConverter,org.apache.struts2.util.StrutsTypeConverter中有兩個要實現(xiàn)的方法一個convertFromString,一個convertToString,看方法名字就知道一個從字符串轉(zhuǎn)換成Object,一個是將Object轉(zhuǎn)換成String,這樣好像更加清晰
另外還有一種全局轉(zhuǎn)換的配置,就是建立一個統(tǒng)一的屬性文件,文件名為xwork-conversion.properties,與struts.xml位于統(tǒng)一目錄下,里面的配置改成了
com.test.struts2.data.Point=com.test.struts2.action.ConverterPoint
意思是所有com.test.struts2.data.Point類型的對象都要通過com.test.struts2.action.ConverterPoint來轉(zhuǎn)換
posted on 2009-01-08 13:30 豬 閱讀(278) 評論(0) 編輯 收藏 所屬分類: 學(xué)習(xí)java