struts轉換:把字符串轉成特定類型,把特定類型轉成字符串
後臺向前臺頁面傳遞值,jsp顯示的時候會轉換類型
簡單類型轉換,直接在action中定義,然後get/set即可
複雜類型轉換:自定義類型轉換器
首先定義一個class,繼承DefaultTypeConverter類(實現了TypeConverter接口),然後重寫裏面的convertValue方法,兩個參數Object value(需要轉換的值),Class toType(需要轉換的類型),返回轉換結果(如果處理不了,return super.convertValue(value, toType)交給父類處理)
然後註冊到struts2裏面,纔可以使用。有三種註冊方式:
1、註冊給action:action名字-conversion.properties 必須和action放在一個包內
裏面定義action裏面定義的名字 = 對應轉換器的類 (遇到某個名字不能轉換,交給對應的類轉換)
2、全局轉換器:xwork-conversion.properties
裏面內容同上
3、註解
如果是List<自定義類>這種類型,則在轉換器的properties就不能寫變量名,需要寫類名 = 對應的轉換器
還有一種寫法就是繼承StrutsTypeConverter,convertFromString和convertToString,之前的DefaultTypeConverter是在一個方法裏做兩種轉換,StrutsTypeConverter做了擴展,
是從DefaultTypeConverter做的繼承並做了擴展,convertFromString是從字符串轉化成目標類型,convertToString是把目標類型轉化成字符串
如果遇到很複雜的,用request.setAttribute或session傳值