struts 型別轉換器

劍握在手發表於2013-12-13

型別轉換

(來自尚學堂)

 

a)      預設轉換

i.       日期處理

b)      寫自己的轉換器:

public class MyPointConverter extends DefaultTypeConverter{

 

         @Override

         public Object convertValue(Object value, Class toType) {

                   if(toType == Point.class) {

                            Point p = new Point();

                            String[] strs = (String[])value;

                            String[] xy = strs[0].split(",");

                            p.x = Integer.parseInt(xy[0]);

                            p.y = Integer.parseInt(xy[1]);

                            return p;

                   }

                   if(toType == String.class) {

                            return value.toString();

                   }

                   return super.convertValue(value, toType);

         }

 

}

public class MyPointConverter extends StrutsTypeConverter{

 

 

 

         @Override

         public Object convertFromString(Map context, String[] values, Class toClass) {

                  

                            Point p = new Point();

                            String[] strs = (String[])values;

                            String[] xy = strs[0].split(",");

                            p.x = Integer.parseInt(xy[0]);

                            p.y = Integer.parseInt(xy[1]);

                            return p;

                  

                  

         }

 

         @Override

         public String convertToString(Map context, Object o) {

                   // TODO Auto-generated method stub

                   return o.toString();

         }

 

}

 

c)      三種註冊方式:

i.       區域性:XXXAction-conversion.properties

1.      p(屬性名稱) =  converter

ii.      全域性:xwork-conversion.properties

1.      com.xxx.XXX(類名)= converter

iii.     Annotation

d)      如果遇到非常麻煩的對映轉換

i.       request.setAttribute();

ii.      session

 

相關文章