struts2類型轉換綱要

類型轉換學習提綱:
類型轉換有兩部分,框架自帶類型轉換器和用戶自定義的類型轉換器!
框架自帶的類型轉換器有兩種:內建類型轉換器和OGNL類型轉換器!
用戶自定義類型轉換器有兩種:請求參數是單個值和請求參數是多個值!
本文簡單介紹結構,具體實現細節參照文檔!
類型轉換的必要性:
所有請求參數都是字符串,但是java是強類型語言,於是必須要進行類型轉換!
類型轉換和數據校驗之間的關係:
先數據校驗(格式),再類型轉換,再進行數據校驗(數據合理性)
①struts2內建的類型轉換器
可以完成的轉換有基本數據類型,Date,數組,集合與字符串之間的轉換!
轉換過程由框架自動完成!
②基於OGNL的類型轉換
可以直接將字符串轉換成複合類型(類)!<注意:類要提供無參構造器>
(1)使用OGNL轉換成Map集合!
Action中有map屬性且表單域爲Action屬性名(Action類裏包含的Map類型屬性)[‘key’].屬性名(Map對象裏符合類型對象的屬性名)
eg:users[‘one’].name;
(2)使用OGNL轉換成List集合
Action中有list屬性且表單域爲Action屬性名[索引].屬性名
eg:users[1].name;
轉換過程由框架自動完成!
上述兩種可以完成大部分類型轉換!但是仍不能滿足需要,於是出現自定義類型轉換器
③自定義類型轉換器(轉換請求參數是單個值)
步驟:
(1)實現類型轉換器
1.1繼承DefaultTypeConverter,重寫convertValue方法;
1.2繼承StrutsTypeConverter,重寫convertFromString和convertToString兩個方法;(比較簡單 建議使用這種方法)
(2)註冊自定義類型轉換器
2.1註冊局部類型轉換器
2.2註冊全局類型轉換器
、、、、、、、、、、、、、、、、、、、、、、
③自定義類型轉換器(轉換請求參數是多個值)
(1)數組屬性的類型轉換器(Action中有一個屬性是數組)
(2)集合屬性的類型轉換器(和數組屬性的類型轉換器類似)
④類型轉換中的錯誤處理
(1)處理流程:
這裏寫圖片描述
(2)處理類型轉換錯誤
conversionError攔截器處理異常後轉入名爲input的邏輯視圖
(3)輸出類型轉換錯誤
使用struts2自帶標籤,如果有需要可以國際化提示內容!

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