posts - 120,  comments - 19,  trackbacks - 0
          struts使用日期包括將string自動轉化為日期fill到form中,以及將form中的日期按照指定格式顯示在html的textfield中。首先講第一種情況的解決方法:

          創建如下類:

          import?java.util.*;
          import?org.apache.commons.beanutils.*;
          import?java.text.SimpleDateFormat;

          public?class?DateConvert?implements?Converter
          {
          ??static?SimpleDateFormat?df?=?new?SimpleDateFormat("yyyy/MM/dd");
          ??public?DateConvert()
          ??{

          ??}
          ??public?Object?convert(Class?type,?Object?value)
          ??{
          ????
          ????if(value==null)return?null;
          ????if(((String)value).trim().length()==0)?return?null;

          ????if(value?instanceof?String)
          ????{
          ??????try
          ??????{
          ????????return?df.parse((String)value);
          ??????}
          ??????catch?(Exception?ex)
          ??????{
          ????????throw?new?ConversionException("輸入的日期類型不合乎yyyy/MM/dd"
          ??????????+?value.getClass());
          ??????}

          ????}
          ????else
          ????{
          ??????throw?new?ConversionException("輸入的不是字符類型"+value.getClass());
          ????}

          ??}
          }

          然后在你的系統某出使用如下(如web的init方法)
          ConvertUtils.register(new?DateConvert(),java.util.Date.class);
          參數用于表示DateConvert類負責處理java.util.Date類型的轉化

          第二種情況是如何顯示form中日期類型到html:text中,我用的辦法是修改struts的代碼,重新生成一個新的struts.jar
          org.apache.struts.taglib.html.BaseFieldTag的doStartTag的方法
          找到?if?(value?!=?null)?{results.append(ResponseUtils.filter(value))代碼行下面的內容,需要修改此處代碼,以便輸出日期類型
          如下:
          if?(value?!=?null)?{
          ????????????results.append(ResponseUtils.filter(value));
          ????????}?else?if?(redisplay?||?!"password".equals(type))?{
          ????????????Object?value?=?RequestUtils.lookup(pageContext,?name,?property,?null);
          ????????????//System.out.println("lijz?"+value);

          ????????????if(value?instanceof?java.util.Date)
          ????????????{
          ???????????????//System.out.println("date="+value);

          ???????????????if?(value?==?null)
          ???????????????????value?=?"";
          ????????else
          ????????{
          ??????????java.util.Date?d=?(java.util.Date)value;
          ??????????try
          ???????????{

          ????????????results.append(ResponseUtils.filter(df.format(d)));
          ??????????}
          ??????????catch(Exception?ex)
          ??????????{
          ????????????System.out.println("form?error:"+ex.getMessage());
          ??????????}
          ??????????}
          ????????????}
          ???????????else
          ???????????{
          ???????????????if?(value?==?null)
          ????????????????value?=?"";
          ????????????????results.append(ResponseUtils.filter(value.toString()));
          ???????????}
          ???????????
          ???????}
          ????????results.append("\"");
          ????????results.append(prepareEventHandlers());
          ????????results.append(prepareStyles());
          ????????results.append(getElementClose());

          ????????//?Print?this?field?to?our?output?writer

          ????????ResponseUtils.write(pageContext,?results.toString());

          ????????//?Continue?processing?this?page

          ????????return?(EVAL_BODY_TAG);??????
          ?
          ?重新編譯struts成struts.jar.放到你需要的項目中?

          作者Blog:http://blog.csdn.net/chensheng913/


          posted on 2006-08-21 16:02 阿成 閱讀(247) 評論(0)  編輯  收藏 所屬分類: Struts
          主站蜘蛛池模板: 伊宁县| 库尔勒市| 安福县| 东阿县| 长岭县| 江安县| 来安县| 三亚市| 尼木县| 赫章县| 芷江| 务川| 温泉县| 平顺县| 久治县| 逊克县| 平定县| 新密市| 宝清县| 张家川| 兴义市| 金坛市| 台南市| 江永县| 牡丹江市| 甘肃省| 阳东县| 平乡县| 永仁县| 安国市| 长宁县| 梨树县| 常宁市| 津南区| 江都市| 界首市| 大悟县| 肇庆市| 贺州市| 驻马店市| 会同县|