Struts2學習筆記之自定義類型轉換器

Struts2學習筆記

第七記:自定義類型轉換器(以時間類型轉換器爲例)

1、局部類型轉換器

   1-1:遵循時間規範的字符串自動類型轉換

   如:UserAction中的時間

     public class UserAction{

            private  Date   today;

            public void setToday(Date today){

                    this.today=today;

            }

           public Date getToday(){

                  return  this.today;

            }

           public String printDate(){

                  System.out.println(this.getToday());

                  return "SUCCESS";

           }

     }

    若struts.xml中UserAction的別名是users,那麼它的訪問路徑是users!printDate.action?today=2012-7-22。

   注意:若today=20120722這不能通過自動類型轉換,程序判定today爲String類型而不是Date類型。

   1-2:String類型和Date類型匹配策略

   例如:這裏存在一個DateConverter

   public class DateConverter extends DefaultTypeConverter{

         @override

         public  Object  convertvalue(Map<String,Object>  context,Object value, Class toType){

                SimpleDateFormat  sdf=new SimpleDateFormat ("yyyyMMdd");

                try{

                     if(toType==Date.class){

                           String [] params=String [] | value;

                           return sdf.parse(params[0]);

                    }else if(toType==Date.class){

                          Date date=(Date)value;

                          return sdf.format(date);

                   }

               }catch(Exception e){   }     

               return null;

         }

   }

     註冊Action對應的轉換器的屬性文件:規則ActionName-conversion.properties

    如:UserAction-conversion.properties

    文件內容:如today=com.xxxx.DateConverter#key是要轉換的字段,value是類型轉換器的路徑

2、全局類型轉換器

   此時的屬性文件改成:xwork-conversion.properties

   如定義所有的時間類型轉換器都通過DateConverter,則:

  java.utils.Date=com.xxxx.DateConverter

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章