国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

struts中日期格式轉換

2019-11-06 06:31:40
字體:
來源:轉載
供稿:網友

為什么要進行日期類型轉換?

  在基于HTTP協議的web應用中,客戶端請求的所有內容(如在表單中輸入的姓名,年齡,生日,等)均都可以以文本編碼方式傳輸到服務器端,但服務器端的編程語言(如java)有著豐富的數據類型,如int,boolean,Date及自定義類型等,因此,當這些參數進入應用程序時,他們必須被轉換為合適的服務器端編程語言的數據類型。(p116)

什么時候需要自定義類型轉換器?

  在引入第三方jar包,集合中只有一個class文件,要自定義類型轉換器該類作為user類的一個屬性并通過set方法注入參數時考慮自定義,否則無須考慮。

Struts2自定義類型轉換器:

  客戶端發送過來的數據都是以String[]的形式保存的。在struts2里面僅僅很少的數據類型轉換支持,例如原生的數據類型。還有常見的String或者Date類型。struts無法知道我們會使用哪種數據類型。所以它提供一些實現自定義類型轉換的類。

  具體的轉換過程如下:

1.定義一個類DataConverter

  該類繼承自StrutsTypeConverter,定義了兩個抽象方法,用于不同的轉換方向,分別如下:

(1) public Object convertFromString(Map context, String[] values, Class toType) 將一個或多個字符串值轉換成指定的類型。參數context是表示OGNL上下文的Map對象,參數values是要轉換的字符串值,參數toType是要轉換的目標類型

(2)public String convertToString(Map context, Object obj):將指定對象轉換為字符串,參數context是表示OGNL上下文的Map對象,參數Object是要轉換的對象

package bigno.qizhiF4.NetBookstore.Date;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.Map;import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;public class DateConverter extends DefaultTypeConverter {    PRivate static final DateFormat[] ACCEPT_DATE_FORMATS = {          new SimpleDateFormat("dd/MM/yyyy"),          new SimpleDateFormat("yyyy-MM-dd"),          new SimpleDateFormat("yyyy/MM/dd") }; //支持轉換的日期格式   @Override   public Object convertValue(Map context, Object value, Class toType) {       if (toType == Date.class) {  //瀏覽器向服務器提交時,進行String to Date的轉換           Date date = null;           String dateString = null;           String[] params = (String[])value;           dateString = params[0];//獲取日期的字符串           for (DateFormat format : ACCEPT_DATE_FORMATS) {               try {                   return format.parse(dateString);//遍歷日期支持格式,進行轉換               } catch(Exception e) {                   continue;               }           }           return null;       }       else if (toType == String.class) {   //服務器向瀏覽器輸出時,進行Date to String的類型轉換           Date date = (Date)value;           return new SimpleDateFormat("yyyy-MM-dd").format(date);//輸出的格式是yyyy-MM-dd       }             return null;   }  }

二、(配置屬性)在src根目錄下新建一個配置文件名字為()  在根目錄下創建xwork-conversion.properties文件,并在里面添加下面語句,注冊類型轉換器java.util.Date=com.great.util.DateConverter其中的com.great.util.DateConverter是日期轉換類包含命名空間的全稱。

 

      然后很多人就大功告成了。

      而我還沒有成功,系統報錯

      “ERROR (CommonsLogger.java:27) - Conversion registration error”

      “java.lang.ClassNotFoundException: com.great.util.DateConverter”

      注冊類型轉換器沒有成功?

      仔細一檢查發現“java.util.Date=com.great.util.DateConverter”的后面多了一個空格!真相大白了。去掉空格,再次運行,成功!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 澄城县| 宁陵县| 安化县| 武穴市| 嘉定区| 缙云县| 望城县| 新巴尔虎左旗| 鄢陵县| 英德市| 洛南县| 吴堡县| 长顺县| 大关县| 阜平县| 绥化市| 临邑县| 青州市| 肥城市| 勃利县| 耿马| 深泽县| 盐边县| 营山县| 万州区| 曲阳县| 南岸区| 江口县| 永登县| 通海县| 财经| 集安市| 灯塔市| 西丰县| 克拉玛依市| 台湾省| 陆川县| 依兰县| 深水埗区| 浪卡子县| 仙游县|