風行天下

          JAVA太極
          posts - 4, comments - 10, trackbacks - 0, articles - 55
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          在Struts中我們經常要處理用戶錄入的日期字符串,將其轉換為java.util.Date類型。在這里我們提供兩種方式來實現這樣的轉換。

          1 在ActionForm子類中,創建兩個變量來處理日期,一個為Date類型,一個為String類型(臨時變量),我們使用String類型的變量來接受用戶的錄入,再編碼將其轉換為Date類型,在頁面輸出時,在根據Date類型生成自定義的文本格式。這種方式靈活性大,不過需要你多付出點勞動。

          2 編寫一個plugin實現自動轉換。Struts下各種對象類型的轉換是通過BeanUtils的Converter實現,所以我們只需向BeanUtils注冊一個日期字符轉換的Converter即可,這種方式不需要你編寫代碼進行轉換,不過在頁面呈現的時候,你可能需要進行格式化,從Date對象之間生產的字符串(toString())往往不是你需要的,使用JSTL就可以的。

          首先編寫一個日期轉換的Converter類:

          public class DateConverter implements Converter {
          static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
          public Object convert(Class arg0, Object value) {
          try {
          return sdf.parse((String) value);
          } catch (Exception e) {
          ex.printStackTrace();
          }
          }
          }

          然后編寫一個Struts的plugin,執行Converter注冊:

          public class ConvertPlugIn implements PlugIn {
          public void destroy() {
          ConvertUtils.deregister();
          }
          public void init(ActionServlet arg0, ModuleConfig arg1)
          throws ServletException {
          ConvertUtils.register(new DateConverter(), Date.class);
          }
          }

          最后在struts-config.xml進行plugin聲明:
          <plug-in className="DateConverter" />

          進行日期轉換,這對Struts來說是非常有益的。Struts的ActionForm一直被認為是設計的缺陷,但是通過BeanUtils可以快速實現ActionForm、VO、PO對象之間的轉換,這就要求ActionForm設計比較合理,當然在ActionForm中實現從采集字符串到日期的轉換會節省很多時間,我們只需關注域對象間的轉換就可以啦。


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 岳池县| 柳江县| 册亨县| 南和县| 沙洋县| 彰武县| 昭苏县| 怀来县| 湟源县| 台东县| 安溪县| 玉林市| 固安县| 汤原县| 通辽市| 宜兴市| 玉山县| 宿迁市| 铜鼓县| 肥东县| 牡丹江市| 临江市| 公主岭市| 丰宁| 芦山县| 闸北区| 伊金霍洛旗| 讷河市| 德江县| 肥城市| 武邑县| 涟水县| 汝南县| 滦南县| 项城市| 思茅市| 西青区| 靖江市| 汶上县| 宁海县| 平度市|