日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts2教程(4)--类型转换

發布時間:2025/3/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts2教程(4)--类型转换 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Struts2類型轉換

1struts2內部提供大量類型轉換器,用來完成數據類型轉換問題

boolean Boolean

charCharacter

int Integer

long Long

float Float

double ?Double

Date 可以接收?yyyy-MM-dd格式字符串

數組 ?可以將多個同名參數,轉換到數組中

集合 ?支持將數據保存到 List或者 Map集合

?

案例: 輸入合法年齡和生日可以自動轉換

當輸入abc 轉換為 int類型age

Caused by: java.lang.NoSuchMethodException: cn.itcast.struts2.demo3.CustomerAction.setAge([Ljava.lang.String;

分析: 輸入20,轉換 int類型20 ?--- setAge(int)

??????輸入abc,轉換int出錯 ---- setAge(String) -----報錯方法不存在異常


自定義類型轉換器

1) 自定義類型轉換器

第一種 實現TypeConverter接口

convertValue(java.util.Map<java.lang.String,java.lang.Object> context, java.lang.Object target, java.lang.reflect.Member member, java.lang.String propertyName, java.lang.Object value, java.lang.Class toType)

第二種 繼承 DefaultTypeConverter

convertValue(java.util.Map<java.lang.String,java.lang.Object> context, java.lang.Object value, java.lang.Class toType)

第三種 繼承 StrutsTypeConverter

convertFromString(java.util.Map context, java.lang.String[] values, java.lang.Class toClass) --- 請求封裝convertToString(java.util.Map context, java.lang.Object o) --- 數據回顯

類型轉換器 一直都是雙向轉換

頁面提交請求參數,封裝到model --- 需要轉換

model數據 需要在頁面 回顯 ?----需要轉換


2) 以 1990/10/10為例,自定義日期轉換器,完成轉換

public Object convertValue(Map<String, Object> context, Object value,Class toType) {// 根據toType判斷 是請求封裝 還是 數據回顯DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");if (toType == Date.class) {// 請求參數封裝 (value是字符串)String[] params = (String[]) value;String strVal = params[0]; // 轉換為 日期類型try {return dateFormat.parse(strVal);} catch (ParseException e) {e.printStackTrace();}} else {// 回顯(value是 Date)Date date = (Date) value;return dateFormat.format(date);}return null;}

3) 注冊類型轉換器

局部注冊 只對當前Action有效 (針對屬性)

全局注冊 針對所有Action的日期類型有效 (針對類型 )

局部注冊 Action類所在包 創建 Action類名-conversion.properties ,格式 : 屬性名稱=類型轉換器的全類名

全局注冊 src下創建 xwork-conversion.properties,格式 : 待轉換的類型=類型轉換器的全類名


類型轉換錯誤處理

通過分析攔截器作用,得知當類型轉換出錯時,自動跳轉input視圖 ,在input視圖頁面中<s:fieldError/> 顯示錯誤信息

Action所在包中,創建ActionName.properties,在局部資源文件中配置提示信息 :invalid.fieldvalue.屬性名=錯誤信息

總結

以上是生活随笔為你收集整理的struts2教程(4)--类型转换的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。