亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

使用ActionForm一次獲取表單的所有參數

2019-11-18 13:15:56
字體:
來源:轉載
供稿:網友

  用過Jakarta Struts的兄弟都知道ActionForm的使用方法和她在Struts框架中所起的作用,但是您是否在為要給ActionForm編寫一大堆setter和getter方法而感到厭倦和疲憊呢?的確,我是厭倦了,所以我要尋求新的方法。我第一反映就是想使用Map接口,將所有的表單參數全部放進HashMap中,然后在Action中get出這個Map,并進行業務邏輯的操作。有了想法當然要去試驗了,實踐才是檢驗真理的唯一標準。
  首先要編寫一個擴展ActionForm的類。代碼如下(由于篇幅,我只列出了代碼的要害部分):
  
  12  package com.jacktan.struts.formbean;
  34  import java.util.*;
  5  import javax.servlet.http.*;
  6 7  import org.apache.struts.action.*;
  8 9  public class CustomForm extends ActionForm {
  1011   PRivate Map formvalueMap = new HashMap();
  1213   public void setFormvalueMap(Map p_FormvalueMap){
  14    this.formvalueMap = p_FormvalueMap;
  15   }
  1617   public Map getFormvalueMap(){
  18     return this.formvalueMap;
  19   }
  2021   public void setFormvalue(String key,Object value){
  22    formvalueMap.put(key,value);
  23  }
  2425  public Object getFormvalue(String key){
  26    return formvalueMap.get(key);
  27  }
  28  }
  
  下面對上面的代碼一一做解釋:
  第11行定義了一個HashMap類的實例變量,這個Map用于存放表單遞交上來的參數值,作為鍵值對存在;
  第13行的setFormvalueMap()方法用于設置實例變量formvalueMap;
  第17行的getFormvalueMap()方法用于獲取實例變量formvalueMap,這個方法將在Action類中調用,替代了以前在Action類中調用大量的(CustomForm)form.getXXX()方法;
  第21行是要害的方法,setFormvalue()這個方法就是取代以前在ActionForm中大量的setXXX()方法,用于接受表單傳遞上來的輸入值。注重這個方法的參數,key是一個String類型的,用作Map的key,value是Object類型的,這個參數就是表示表單傳送過來的各個輸入值。
  第25行是getFormvalue()方法,用于從Map中根據key返回一個value對象。
  
  好了,ActionForm的任務完成了,不過離目標還有好大一段距離,目前只完成了三分之一的工作。我們繼續干!
  
  有了ActionForm接下來就是要編寫Action類了,代碼如下(由于篇幅,我只列出了代碼的要害部分):
  
  12  package com.jacktan.struts.action;
  34  import java.util.*;
  5  import javax.servlet.http.*;
  6 7  import org.apache.struts.action.*;
  8 9  import com.jacktan.struts.formbean.CustomForm
  10 11 public class CustomAction extends Action {
  1213   public ActionForward execute(
  14              ActionMapping p_Mapping,
  15              ActionForm p_Form,
  16              HttpServletRequest p_Request,
  17   HttpServletResponse p_Response)
  18    throws Exception{
  192021     Map formvalues =
  22        ((CustomForm)p_Form).getFormvalueMap();
  2324     return p_Mapping.findForward("SUCcess");
  25   }
  26  }
  
  CustomAction類的要害行在第21-22行,使用在CustomForm類中定義的 getFormvalueMap()方法一次就將表單中所有的提交參數收集完畢,省掉了以前要使用很多getXXX()方法從ActionForm中獲取表單值的做法。
  好了,接下來是要編寫jsp頁面了,因為我們的ActionForm使用非凡的方法接受參數值,所以在寫表單頁面的時候也要使用非凡的簽名。代碼如下:
  
  <Html:form action="login"><table width="100%" border="0">
    <tr>
     <td width="3%">
   </td>
     <td width="31%">
   </td><td width="66%" rowspan="6" valign="top"><html:errors/></td>
    </tr>
    <tr>
     <td>
   </td>
     <td height="25">用戶名</td>
    </tr>
    <tr>
     <td> </td><td height="25"><html:text property="formvalue(username)" size="12" maxlength="12"/></td>
    </tr>
    <tr>
     <td>
   </td>
     <td height="25">密碼</td>
    </tr>
   <tr>
    <td>
   </td><td height="25"><html:passWord property="formvalue(password)" size="12" maxlength="12" redisplay="false"/></td>
    </tr>
    <tr>
     <td> </td><td height="25"><html:submit value="登錄"/> <html:button property="close" value="關閉" onclick="Close()"/></td>
    </tr></table>
  
  上面是一個用戶登錄的界面,注重紅色的部分,這個簽名要和CustomForm類中的setFormvalue()簽名保持一致,注重大小寫,Struts會利用Java的反射機制尋找到合適的方法調用。formvalue(username)圓括號中的字符串可以是表示該輸入域在數據庫中字段的映射,也可以是自己自定義的字符串,這個字符串將作為Map的key保存。
  好了,終于要完成了,最后要做的就是設置struts的配置文件了,打開struts-config.xml文件,
  
  在<form-beans>段輸入以下代碼:
  
  <form-beans>
  <form-bean
  name="CustomForm"
  type="com.jacktan.struts.formbean.CustomForm"/>
  </form-beans>
  
  在<action-mappings>段輸入以下代碼:
  
  <action
  path="/login"
  type="com.jacktan.struts.action.CustomAction"
  name="addDeviceForm"
  scope="request">
  <forward name="login" path="main.jsp"/>
  </action>
  
  大功告成,所有的任務都完成了。為了檢測是否可以正確運行,我在Action類中加入如下測試代碼:
  
  1  Set set = formvalues.entrySet();
  2  Iterator it = set.iterator();
  3  while( it.hasNext() ){
  4    Map.Entry me = (Map.Entry)it.next();
  5    System.out.println((String)me.getKey);
  6 System.out.println((String)me.getvalue);
  7  }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品国自产拍av秋霞| 国产精品pans私拍| 精品视频一区在线视频| 理论片在线不卡免费观看| 欧美最顶级的aⅴ艳星| 欧美性猛交丰臀xxxxx网站| 国产一区在线播放| 亚洲va码欧洲m码| 亚洲欧美日韩一区二区三区在线| 亚洲国产中文字幕在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 91美女高潮出水| 久久久99久久精品女同性| 日韩男女性生活视频| 欧美孕妇与黑人孕交| 国产91精品在线播放| 亚洲网站在线播放| 亚洲精品成人久久久| 色多多国产成人永久免费网站| 国产精品私拍pans大尺度在线| 欧美美女15p| 一本色道久久88综合日韩精品| 亚洲精品在线看| 国产第一区电影| 亚洲国产精品免费| 亚洲激情视频在线观看| 69久久夜色精品国产7777| 国产在线999| 一区二区三区 在线观看视| 久久久电影免费观看完整版| 精品久久久精品| 2019中文字幕全在线观看| 日韩精品在线影院| 国产精品91在线观看| 情事1991在线| 中文字幕日韩高清| 国产一区在线播放| 91亚洲精品在线观看| 91精品免费久久久久久久久| 欧美激情在线视频二区| 国产精品无av码在线观看| 国产精品美女主播| 国产精品一区二区久久| 久久99亚洲精品| 亚洲最大的成人网| 亚洲精品国产综合久久| 亚洲成av人乱码色午夜| 成人免费自拍视频| 亚洲九九九在线观看| 国产精品视频网| 一本色道久久88精品综合| 国产在线拍揄自揄视频不卡99| 97久久精品视频| 91av视频在线播放| wwwwwwww亚洲| 欧美亚洲另类制服自拍| 亚洲人成网站999久久久综合| 国产精品久久婷婷六月丁香| 国产中文字幕亚洲| 尤物99国产成人精品视频| 国产一区二区三区四区福利| 视频在线一区二区| 91av在线不卡| 欧美色欧美亚洲高清在线视频| 国产美女精品免费电影| 日韩在线观看av| 日韩成人激情视频| 欧美一级高清免费播放| 成人免费午夜电影| 亚洲国产精品va在看黑人| 欧美成人黄色小视频| 国产精品成人aaaaa网站| 久久99精品国产99久久6尤物| 国产精品日韩在线一区| 欧美精品成人91久久久久久久| 美女啪啪无遮挡免费久久网站| 久久久久久91| 日韩精品在线视频| 国产精品高潮呻吟久久av无限| 成人欧美在线观看| 日本精品视频在线观看| 一本色道久久综合狠狠躁篇怎么玩| 久久精品国产亚洲精品2020| 中国china体内裑精亚洲片| 国产欧美在线播放| 97精品久久久中文字幕免费| 亚洲最新av在线网站| 黑人狂躁日本妞一区二区三区| 国产精品视频一区二区高潮| 亚洲自拍偷拍网址| 亚洲全黄一级网站| 亚洲精品一区二三区不卡| 亚洲春色另类小说| 欧美极度另类性三渗透| 日韩高清av在线| 亚洲第一色中文字幕| 伊人久久综合97精品| 亚洲性av网站| 亚洲欧美制服另类日韩| 久久亚洲精品网站| 欧美日韩在线一区| 亚洲美女中文字幕| 青草热久免费精品视频| 亚洲国产日韩欧美在线图片| 国产婷婷色综合av蜜臀av| 久久久国产成人精品| 欧美成人免费全部观看天天性色| 欧美日韩美女在线| 亚洲欧洲日韩国产| 欧美性生活大片免费观看网址| 亚洲激情电影中文字幕| 91免费在线视频| 欧美高清在线视频观看不卡| 日韩av片电影专区| 成人h片在线播放免费网站| 日韩在线中文视频| 亚洲最新av在线| 爽爽爽爽爽爽爽成人免费观看| 亚洲国产古装精品网站| 欧美最猛性xxxxx免费| 久久91精品国产91久久跳| 国产v综合ⅴ日韩v欧美大片| 日本一本a高清免费不卡| 91精品国产91久久久久福利| 日韩欧美成人精品| 91亚洲国产成人精品性色| 成人写真视频福利网| 亚洲欧美日韩视频一区| 日韩av电影在线播放| 精品久久久视频| 精品国产一区久久久| 欧美一级电影久久| 91亚洲精品久久久久久久久久久久| 亚洲欧美日韩在线一区| 疯狂做受xxxx欧美肥白少妇| 久久精品成人欧美大片古装| 亚洲国产另类 国产精品国产免费| 亚洲第一免费播放区| 欧美亚洲另类制服自拍| 久久精品福利视频| 亚洲美女又黄又爽在线观看| 亚洲人成网站777色婷婷| 日韩福利在线播放| 国产精品69久久久久| 精品国产91久久久久久| 欧美在线观看日本一区| 国产成人精品一区二区| 欧美高清视频在线观看| 丁香五六月婷婷久久激情| 欧美在线观看一区二区三区| 中文字幕欧美日韩精品| 狠狠爱在线视频一区| 亚洲娇小xxxx欧美娇小| 亚洲天堂成人在线视频| 国产精品aaaa| 亚洲欧美综合区自拍另类| 日韩中文字幕视频在线| 一区二区三区天堂av| 亚洲国产欧美在线成人app| 亚洲free性xxxx护士hd| 色综合视频网站| 国产成人精品久久二区二区91| 中国china体内裑精亚洲片| 日本精品一区二区三区在线|