瘋狂

          STANDING ON THE SHOULDERS OF GIANTS
          posts - 481, comments - 486, trackbacks - 0, articles - 1
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          日歷

          <2007年10月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          公告

          公眾號:
          QQjava交流群:51374316



          相冊

          搜索

          •  

          積分與排名

          • 積分 - 2842645
          • 排名 - 2

          最新隨筆

          Struts中的Converter可以將一些特定對象轉換成字符串,比如int、boolean、double等。例如:它會將1,y,on,yes轉換成true.具體的實現要

          參閱org.apache.commons.beanutils.Converter下的ConvertUtils.class類。下面是自己參照這個類寫了一個轉換java.util.date數據類型的

          例子:
          首先建一個類實現Converter接口。
          package com.struts.myconvert;

          import java.text.DateFormat;
          import java.text.ParseException;
          import java.text.SimpleDateFormat;
          import java.util.Date;

          import org.apache.commons.beanutils.Converter;

          /**
           * java.util.Date轉換器
           * @author Administrator
           *
           */
          public class UtilConvert implements Converter {

           public Object convert(Class type, Object value) {
            if (value == null) {
             return value;
            }
            
            if (value instanceof Date) {
             return value;
            }
            
            if (value instanceof String) {
             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
            
                       try {
             return format.parse(value.toString());
             } catch (ParseException e) {   
              e.printStackTrace();
             }
             
            }
            return value;
           }
          }

          然或建一個servlet用來注冊這個ava.util.Date轉換器:
          package com.struts.convert_servlet;

          import java.io.IOException;
          import java.io.PrintWriter;
          import java.util.Date;

          import javax.servlet.ServletException;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

          import org.apache.commons.beanutils.ConvertUtils;

          import com.bjsxt.struts.myconvert.UtilConvert;

          public class Myconvert extends HttpServlet {

           
           public void init() throws ServletException {
            ConvertUtils.register(new UtilConvert(),Date.class);//調用ConvertUtils的register方法
           }
          }
          當然要在web.xml中配置這個servlet:
          <servlet>
              <servlet-name>Myconvert</servlet-name>
              <servlet-class>com.struts.convert_servlet.Myconvert</servlet-class>
               <load-on-startup>3</load-on-startup>
            </servlet>
          下面是具體的測試頁面:
          index.jsp的主要代碼:
          <form action="convert.do" method="post">
              utildate_vlaue:<input type="text" name="utildatevalue">
                             <input type="submit" value="submit">
            </form>
          相應的actionForm:
          package com.struts.myconvert;

          import java.text.SimpleDateFormat;

          import org.apache.struts.action.ActionForm;

          public class ConvertActionForm extends ActionForm {

            private java.util.Date utildatevalue;


          public java.util.Date getUtildatevalue() {
           return utildatevalue;
          }

          public void setUtildatevalue(java.util.Date utildatevalue) {
           this.utildatevalue = utildatevalue;
          }
           
          }
          相應的action頁面:
          package com.struts.myconvert;

          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;

          import org.apache.struts.action.Action;
          import org.apache.struts.action.ActionForm;
          import org.apache.struts.action.ActionForward;
          import org.apache.struts.action.ActionMapping;

          public class ConvertAction extends Action {

           @Override
           public ActionForward execute(ActionMapping mapping, ActionForm form,
             HttpServletRequest request, HttpServletResponse response)
             throws Exception {
            ConvertActionForm cf = (ConvertActionForm)form;
            
            return mapping.findForward("success");
           }

          }
          struts-config.xml中的配置:
          <form-beans>
          <form-bean name="convertActionForm" type="com.struts.myconvert.ConvertActionForm"></form-bean>
          </form-beans>
          <action-mappings>
          <action path="/convert"
                  type="com.struts.myconvert.ConvertAction"
                  name="convertActionForm"
                  scope="request"
           >
           <forward name="success" path="/success.jsp"></forward>
          </action>

          </action-mappings>
          顯示頁面success.jsp:
          主要代碼:${convertActionForm.utildatevalue}
          然后當你在index.jsp中的輸入框中輸入:1987-11-11 2-12-45(只能按照UtilConvert類中的yyyy-MM-dd HH-mm-ss格式輸入)
          提交后就會顯示如下:Wed Nov 11 02:12:45 CST 1987


          當然這例子只是一個實現,用處很小,有很大的局限性。


          評論

          # re: 初探struts中的(Converter)的一個例子[未登錄]  回復  更多評論   

          2007-12-03 20:07 by 笨笨
          很多人都看過了,呵呵,加油!

          # re: 初探struts中的(Converter)的一個例子[未登錄]  回復  更多評論   

          2008-10-03 15:42 by 小天
          謝謝 剛好在書上看到沒列子

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


          網站導航:
           
          主站蜘蛛池模板: 海伦市| 库车县| 巴彦县| 铅山县| 岳西县| 凌海市| 三亚市| 哈巴河县| 湘阴县| 鲁甸县| 奉贤区| 莒南县| 辉县市| 阜南县| 逊克县| 密山市| 杭锦后旗| 沽源县| 台江县| 蓬溪县| 广昌县| 阳曲县| 孟连| 白玉县| 浦江县| 罗城| 定安县| 土默特左旗| 和林格尔县| 喀什市| 鄂尔多斯市| 河西区| 龙岩市| 新营市| 清丰县| 黔西县| 天祝| 平顺县| 巴彦淖尔市| 平江县| 吴川市|