瘋狂

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

          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 小天
          謝謝 剛好在書上看到沒列子

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


          網站導航:
           
          主站蜘蛛池模板: 平罗县| 宜兰市| 宁陵县| 茌平县| 屏山县| 儋州市| 马山县| 卢湾区| 东宁县| 集安市| 光泽县| 荣成市| 九台市| 白山市| 大渡口区| 沾益县| 石狮市| 灵寿县| 周宁县| 当雄县| 阜平县| 卢氏县| 大方县| 榆社县| 武平县| 安塞县| 邯郸市| 青冈县| 宜都市| 曲松县| 银川市| 丹凤县| 德令哈市| 虎林市| 双峰县| 山东省| 德兴市| 松阳县| 石家庄市| 沾益县| 登封市|