瘋狂

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

          Struts中的Converter可以將一些特定對(duì)象轉(zhuǎn)換成字符串,比如int、boolean、double等。例如:它會(huì)將1,y,on,yes轉(zhuǎn)換成true.具體的實(shí)現(xiàn)要

          參閱org.apache.commons.beanutils.Converter下的ConvertUtils.class類。下面是自己參照這個(gè)類寫了一個(gè)轉(zhuǎn)換java.util.date數(shù)據(jù)類型的

          例子:
          首先建一個(gè)類實(shí)現(xiàn)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轉(zhuǎn)換器
           * @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;
           }
          }

          然或建一個(gè)servlet用來(lái)注冊(cè)這個(gè)ava.util.Date轉(zhuǎn)換器:
          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);//調(diào)用ConvertUtils的register方法
           }
          }
          當(dāng)然要在web.xml中配置這個(gè)servlet:
          <servlet>
              <servlet-name>Myconvert</servlet-name>
              <servlet-class>com.struts.convert_servlet.Myconvert</servlet-class>
               <load-on-startup>3</load-on-startup>
            </servlet>
          下面是具體的測(cè)試頁(yè)面:
          index.jsp的主要代碼:
          <form action="convert.do" method="post">
              utildate_vlaue:<input type="text" name="utildatevalue">
                             <input type="submit" value="submit">
            </form>
          相應(yīng)的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;
          }
           
          }
          相應(yīng)的action頁(yè)面:
          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>
          顯示頁(yè)面success.jsp:
          主要代碼:${convertActionForm.utildatevalue}
          然后當(dāng)你在index.jsp中的輸入框中輸入:1987-11-11 2-12-45(只能按照UtilConvert類中的yyyy-MM-dd HH-mm-ss格式輸入)
          提交后就會(huì)顯示如下:Wed Nov 11 02:12:45 CST 1987


          當(dāng)然這例子只是一個(gè)實(shí)現(xiàn),用處很小,有很大的局限性。


          評(píng)論

          # re: 初探struts中的(Converter)的一個(gè)例子[未登錄]  回復(fù)  更多評(píng)論   

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

          # re: 初探struts中的(Converter)的一個(gè)例子[未登錄]  回復(fù)  更多評(píng)論   

          2008-10-03 15:42 by 小天
          謝謝 剛好在書上看到?jīng)]列子

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 开鲁县| 都安| 巫山县| 东乌珠穆沁旗| 滦南县| 会东县| 克什克腾旗| 工布江达县| 延长县| 湟源县| 越西县| 中阳县| 鄯善县| 合水县| 遂平县| 长宁区| 柳林县| 蓬溪县| 新泰市| 卢龙县| 东安县| 漠河县| 若尔盖县| 林甸县| 郸城县| 金昌市| 高邑县| 博兴县| 雅江县| 波密县| 常州市| 晋江市| 茶陵县| 德钦县| 离岛区| 承德县| 呈贡县| 桂林市| 岳西县| 清河县| 和田县|