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
          主站蜘蛛池模板: 平顺县| 雷山县| 辽宁省| 忻城县| 宜兴市| 田东县| 龙江县| 卢龙县| 依安县| 龙海市| 枞阳县| 漳平市| 林口县| 手游| 筠连县| 中卫市| 绥阳县| 东平县| 龙江县| 苍溪县| 婺源县| 伊宁市| 道孚县| 绥滨县| 九龙县| 临漳县| 永寿县| 南通市| 公安县| 贡嘎县| 公主岭市| 益阳市| 翁源县| 图木舒克市| 平舆县| 汉源县| 敦煌市| 本溪| 安康市| 织金县| 高要市|