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

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

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

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

  用過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    import org.apache.struts.action.*;
8    public class CustomForm extends ActionForm {
10    PRivate Map formvalueMap = new HashMap();
12    public void setFormvalueMap(Map p_FormvalueMap){
14    this.formvalueMap = p_FormvalueMap;
15   }
16    public Map getFormvalueMap(){
18      return this.formvalueMap;
19   }
20    public void setFormvalue(String key,Object value){
22    formvalueMap.put(key,value);
23    }
24     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    import org.apache.struts.action.*;
8    import com.jacktan.struts.formbean.CustomForm
10   public class CustomAction extends Action {
12     public ActionForward execute(ActionMapping p_Mapping,
15         ActionForm p_Form,
16         HttpServletRequest p_Request,
17         HttpServletResponse p_Response) 
18      throws Exception{
21        Map formvalues =((CustomForm)p_Form).getFormvalueMap();
23          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">
?。紅r>
 ?。紅d width="3%"> ;</td>
  <td width="31%"> ;</td>
 ?。紅d width="66%" rowspan="6" valign="top">
  ?。糷tml:errors/>
 ?。?td>
 </tr>
?。紅r>
  <td> ;</td>
 ?。紅d height="25">用戶名</td>
?。?tr>
 <tr>
 ?。紅d> ;</td>
  <td height="25">
  ?。糷tml:text property="formvalue(username)" size="12" maxlength="12"/></td>
 </tr>
?。紅r>
 ?。紅d> ;</td>
 ?。紅d height="25">密碼</td>
 </tr>
?。紅r>
 ?。紅d> ;</td>
 ?。紅d height="25">
  ?。糷tml:passWord property="formvalue(password)" size="12" maxlength="12" redisplay="false"/>
 ?。?td>
 </tr>
?。紅r>
 ?。紅d> ;</td>
  <td height="25">
  ?。糷tml: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 }
  以上代碼將在Tomcat的控制臺中打印出所有表單提交的參數值,你也可以使用Struts中log4j組件在日志文件中輸入。好了,就寫到這里吧,以上就是使用Map將表單提交的數據一次性獲取,并在Action中調用的全部工作內容,希望對大家使用Struts做開發的兄弟有所提示和啟發。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
性色av一区二区三区红粉影视| 日韩福利伦理影院免费| 亚洲黄色av网站| 欧美国产高跟鞋裸体秀xxxhd| 亚洲免费电影在线观看| 日韩成人av在线播放| 亚洲成年人影院在线| 欧美有码在线视频| 亚洲第一在线视频| 日本国产一区二区三区| 欧美激情精品久久久久久变态| 国产精品wwww| 国产精品一二区| 国产精品欧美激情| 欧美精品成人91久久久久久久| 国产精品吹潮在线观看| 午夜精品三级视频福利| 亚洲欧美日本精品| 4444欧美成人kkkk| 成人国产精品av| 97涩涩爰在线观看亚洲| 国产福利精品在线| 欧美日韩国产精品一区二区三区四区| 欧美性猛交xxxx乱大交蜜桃| 亚洲国产小视频| 88国产精品欧美一区二区三区| 久久亚洲国产成人| 91久久久久久国产精品| 久久99久久99精品中文字幕| 欧美成人中文字幕| 91sa在线看| 国产精品一二三视频| 日本国产精品视频| 国内精品久久久久久影视8| 欧美福利视频在线观看| 国产精品欧美亚洲777777| 欧美成人免费全部| 欧美电影在线观看| 日韩精品视频中文在线观看| 91精品啪aⅴ在线观看国产| 国产日韩在线精品av| 日韩av免费看| 精品福利视频导航| 26uuu久久噜噜噜噜| 亚洲自拍偷拍一区| 成人做爰www免费看视频网站| 亚洲免费av电影| 亚洲欧美日韩精品久久| 欧美性生交xxxxx久久久| 国产日韩欧美91| 国产视频精品免费播放| 国产成人综合亚洲| 欧美精品激情视频| 国产精品女人久久久久久| 亚洲人线精品午夜| 2025国产精品视频| 久久久999精品免费| 欧美激情va永久在线播放| 久久久天堂国产精品女人| 亚洲欧美精品一区二区| 55夜色66夜色国产精品视频| 91精品国产91久久久久福利| 国产va免费精品高清在线| 黄网动漫久久久| 欧美日韩美女在线| 国产日韩在线免费| 欧美午夜片欧美片在线观看| 亚洲精品乱码久久久久久金桔影视| 国产一区二区三区视频在线观看| 中文字幕久热精品在线视频| 国产精品一区二区久久精品| 午夜精品久久久久久99热软件| 欧洲永久精品大片ww免费漫画| 国产aⅴ夜夜欢一区二区三区| 伊人精品在线观看| 欧美精品久久久久久久免费观看| 久久久久久久久久久亚洲| 久久影院免费观看| 国产精品69久久久久| 精品人伦一区二区三区蜜桃网站| 日韩精品免费在线视频观看| 久久精品视频va| 欧美成人午夜免费视在线看片| 久久成人精品电影| 国产91在线播放九色快色| 久久免费视频网站| 国产精品入口夜色视频大尺度| 亚洲一区二区久久| 成人福利网站在线观看| 久久精品91久久久久久再现| 亚洲丁香久久久| 国产一区二区三区丝袜| 午夜精品久久久久久久99热| 欧美劲爆第一页| 亚洲激情视频在线观看| 午夜精品三级视频福利| 米奇精品一区二区三区在线观看| 欧美久久久精品| 欧美性videos高清精品| 国产精品久久久久秋霞鲁丝| 久久免费国产视频| 国产成人涩涩涩视频在线观看| 亚洲国产又黄又爽女人高潮的| 日本a级片电影一区二区| 国产日韩欧美日韩| 国产精品美女呻吟| 69久久夜色精品国产69乱青草| 日韩免费电影在线观看| 久久精品国产亚洲一区二区| 超碰91人人草人人干| 亚洲欧美精品中文字幕在线| 亚洲精品电影网在线观看| 中日韩午夜理伦电影免费| 亚洲人成电影在线观看天堂色| 久久久久久91| 亚洲国产第一页| 一区二区三区四区精品| 欧美激情免费在线| 91亚洲永久免费精品| 最新国产成人av网站网址麻豆| 亚洲毛片在线观看.| 欧美成人精品在线观看| 日韩国产精品亚洲а∨天堂免| 国产日韩欧美自拍| 亚洲免费视频一区二区| 国产香蕉97碰碰久久人人| 日韩精品在线观看网站| 日韩av大片在线| 一区二区三区无码高清视频| 精品偷拍一区二区三区在线看| 久久精品国产久精国产思思| 国产精品青草久久久久福利99| 亚洲自拍偷拍一区| 欧美大片在线看免费观看| 国产精品美女久久久免费| 在线观看国产精品日韩av| 欧美插天视频在线播放| 欧美整片在线观看| 久久夜色精品国产| 亚洲国产成人精品女人久久久| 亚洲欧美中文字幕| 性欧美办公室18xxxxhd| 有码中文亚洲精品| 自拍偷拍亚洲区| 国产精品网站大全| 国产精品综合久久久| 久热精品视频在线观看| 久久国产视频网站| 日韩中文综合网| 欧美电影第一页| 久久99国产精品久久久久久久久| 亚洲一区制服诱惑| 91欧美激情另类亚洲| 一区二区三区视频免费| 黑人与娇小精品av专区| 91精品国产91久久久久久| 欧美一级黑人aaaaaaa做受| 日韩免费视频在线观看| 国产精品偷伦免费视频观看的| 亚洲三级免费看| 亚洲高清色综合| 国产一区二区三区网站| 久久伊人精品视频| 中文字幕av一区二区|