<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    旅行的意義

     

    struts2類型轉換

    概說
    許多時候struts能很好的將頁面上field中的字符輸入和POJO類中的屬性對應起來并自動轉換(比如整型、日期等等),但如果遇到一些自定義復雜業務類型,就需要我們顯式的提供轉換處理。

    struts2中實現類型轉換的接口為

     

    interface com.opensymphony.xwork2.conversion.TypeConverter

     

    其中定義的方法為

     

    Object convertValue(Map<String,Object> context, Object target, Member member, String propertyName, Object value, Class toType)

     

     

    為了方便使用,struts2提供了兩個實現

    (1) com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter

    我們只需要override其中的

    Object convertValue(Map<String,Object> context, Object value, Class toType) 方法即可。

    toType為將要轉換為的類型

     

    (2)更方便的解決辦法是繼承抽象類

    org.apache.struts2.util.StrutsTypeConverter

    它繼承了上面的類,并提供了兩個抽象函數

     

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

    abstract
      String convertToString(Map context, Object o)

     

    因為平時最常用的就是特定類型與String類的互轉,所以在一般情況下實現這兩個方法已經足夠了。

     

     下面簡單說一下轉換原理。在JSP中的s:textfield提交后到Action的同時也將調用Action的set方法賦值,如果此時Action中定義了POJO類,則struts2會自動試圖尋找該類和String[]之間的轉換方法。他回到如下兩個地方尋找:

    (1)WEB-INF下的 xwork-conversion.properties

    某個字段=轉換該字段的類

    如:point1=PointConverter

    (2)與XXXAction所在同一級目錄下的XXXAction-conversion.properties

    某個要轉換的類=轉換該類的類

    如:Point=PointConverter

    如果同時配置的話,(2)具有更高的優先級。

    幾個需要記住的幾個地方再寫一下:
    class DefaultTypeConverter                     struts2中類型轉換的基類 

    class StrutsTypeConverter                        struts2提供的一個更方便的實現

    xwork-conversion.properties                    全局轉換屬性文件名

    XXXAction-conversion.properties            基于特定Action的轉換屬性文件名

     



    集合及部分自動轉換

    集合的話,最好用范型指定轉換類的類型,否則Struts會找不到

    List<ClassA>

     

    部分自動轉換是指頁面上可以直接寫類似于ClassA.A,ClassA.B 這樣的field,

    程序會自動尋找Action中的setClassA方法,同時尋找ClassA中的setA和setB方法從而賦值。
    但是好像實際使用的時候用的并不多,因為這樣事實上直接將POJO的細節透露給表示層。

    posted on 2009-01-25 17:20 bacon 閱讀(2725) 評論(0)  編輯  收藏 所屬分類: J2EE

    導航

    統計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    文章分類

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 最近2019中文字幕免费看最新 | 天堂亚洲免费视频| 久久亚洲精品国产精品婷婷| 蜜臀AV免费一区二区三区| 亚洲人成网www| 91老湿机福利免费体验| 亚洲人成片在线观看| 一个人免费观看视频www| 亚洲乱码在线观看| 国产在线a不卡免费视频| 四虎永久在线精品免费一区二区| 亚洲一本大道无码av天堂| 99视频在线观看免费| 亚洲天天在线日亚洲洲精| 1000部羞羞禁止免费观看视频| 亚洲午夜电影一区二区三区| 成人au免费视频影院| 黄色网页免费观看| 亚洲精品你懂的在线观看| 欧洲人成在线免费| 亚洲三级在线观看| 国产成人精品日本亚洲专区| 日本一道本不卡免费| 亚洲AV一二三区成人影片| 国产又黄又爽又刺激的免费网址 | 免费萌白酱国产一区二区| 一出一进一爽一粗一大视频免费的| 亚洲无码在线播放| 欧洲一级毛片免费| 深夜a级毛片免费无码| 亚洲αv在线精品糸列| 成人免费视频软件网站| av网站免费线看| 亚洲小说区图片区| 亚洲精品无码日韩国产不卡?V| 欧洲人成在线免费| 国产成人综合久久精品亚洲| 亚洲成人激情在线| 全部免费毛片在线| 免费看男女下面日出水来| 老妇激情毛片免费|