国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

用ActionForm一次獲取表單所有參數(shù)

2019-11-18 13:44:47
字體:
供稿:網(wǎng)友

  用過Jakarta Struts的兄弟都知道ActionForm的使用方法和她在Struts框架中所起的作用,但是您是否在為要給ActionForm編寫一大堆setter和getter方法而感到厭倦和疲憊呢?的確,我是厭倦了,所以我要尋求新的方法。我第一反映就是想使用Map接口,將所有的表單參數(shù)全部放進(jìn)HashMap中,然后在Action中g(shù)et出這個(gè)Map,并進(jìn)行業(yè)務(wù)邏輯的操作。有了想法當(dāng)然要去試驗(yàn)了,實(shí)踐才是檢驗(yàn)真理的唯一標(biāo)準(zhǔn)。



  首先要編寫一個(gè)擴(kuò)展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   }
  下面對(duì)上面的代碼一一做解釋:

  第11行定義了一個(gè)HashMap類的實(shí)例變量,這個(gè)Map用于存放表單遞交上來的參數(shù)值,作為鍵值對(duì)存在;
第13行的setFormvalueMap()方法用于設(shè)置實(shí)例變量formvalueMap;

  第17行的getFormvalueMap()方法用于獲取實(shí)例變量formvalueMap,這個(gè)方法將在Action類中調(diào)用,替代了以前在Action類中調(diào)用大量的(CustomForm)form.getXXX()方法;

  第21行是要害的方法,setFormvalue()這個(gè)方法就是取代以前在ActionForm中大量的setXXX()方法,用于接受表單傳遞上來的輸入值。注重這個(gè)方法的參數(shù),key是一個(gè)String類型的,用作Map的key,value是Object類型的,這個(gè)參數(shù)就是表示表單傳送過來的各個(gè)輸入值。

  第25行是getFormvalue()方法,用于從Map中根據(jù)key返回一個(gè)value對(duì)象。

  好了,ActionForm的任務(wù)完成了,不過離目標(biāo)還有好大一段距離,目前只完成了三分之一的工作。我們繼續(xù)干!

  有了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()方法一次就將表單中所有的提交參數(shù)收集完畢,省掉了以前要使用很多getXXX()方法從ActionForm中獲取表單值的做法。
  好了,接下來是要編寫jsp頁面了,因?yàn)槲覀兊腁ctionForm使用非凡的方法接受參數(shù)值,所以在寫表單頁面的時(shí)候也要使用非凡的簽名。代碼如下:

<Html:form action="login">
<table width="100%"  border="0">
?。紅r>
  <td width="3%"> ;</td>
 ?。紅d width="31%"> ;</td>
 ?。紅d width="66%" rowspan="6" valign="top">
  ?。糷tml:errors/>
 ?。?td>
?。?tr>
 <tr>
 ?。紅d> ;</td>
 ?。紅d height="25">用戶名</td>
?。?tr>
?。紅r>
  <td> ;</td>
 ?。紅d height="25">
  ?。糷tml:text property="formvalue(username)" size="12" maxlength="12"/></td>
 </tr>
?。紅r>
 ?。紅d> ;</td>
 ?。紅d height="25">密碼</td>
 </tr>
 <tr>
  <td> ;</td>
  <td height="25">
   <html:passWord property="formvalue(password)" size="12" maxlength="12" redisplay="false"/>
 ?。?td>
 </tr>
?。紅r>
  <td> ;</td>
 ?。紅d height="25">
   <html:submit value="登錄"/>?。糷tml:button property="close" value="關(guān)閉" onclick="Close()"/>
  </td>
?。?tr>
</table>

  上面是一個(gè)用戶登錄的界面,注重紅色的部分,這個(gè)簽名要和CustomForm類中的setFormvalue()簽名保持一致,注重大小寫,Struts會(huì)利用Java的反射機(jī)制尋找到合適的方法調(diào)用。formvalue(username)圓括號(hào)中的字符串可以是表示該輸入域在數(shù)據(jù)庫中字段的映射,也可以是自己自定義的字符串,這個(gè)字符串將作為Map的key保存。

  好了,終于要完成了,最后要做的就是設(shè)置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>
  大功告成,所有的任務(wù)都完成了。為了檢測是否可以正確運(yùn)行,我在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的控制臺(tái)中打印出所有表單提交的參數(shù)值,你也可以使用Struts中l(wèi)og4j組件在日志文件中輸入。好了,就寫到這里吧,以上就是使用Map將表單提交的數(shù)據(jù)一次性獲取,并在Action中調(diào)用的全部工作內(nèi)容,希望對(duì)大家使用Struts做開發(fā)的兄弟有所提示和啟發(fā)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产一级二级三级在线观看| 国产黄色一级电影| aaa大片在线观看| 二区三区中文字幕| 国产在线观看a| 日本中文字幕在线视频| 中文字幕不卡免费视频| 九九色在线观看| 免费不卡中文字幕视频| www.操.com| 久久99精品久久久久久野外| 最近中文字幕mv2018在线高清| 粉嫩av一区| 国产精品视频一区麻豆| 精品精品导航| 国产在线看片| 一区免费观看| 国产在线观看色| 中文一区在线观看| 青青草视频在线观看| 国产三区在线观看| 免费观看v片在线观看| 国产成人va亚洲电影| 狂野欧美性猛交xxxx乱大交| 国产精品视频h| 成视频年人免费看黄网站| 国产视频中文字幕在线观看| www操操操| 精品欧美日韩一区二区 | 国产福利热线视频| 白浆爆出在线观看| 国产美女极品在线| 天天激情综合| 国产黄色免费网站| 国产永久免费高清在线观看| 亚洲综合激情六月婷婷在线观看| 日韩av成人| 国产毛片在线看| 欧美高清视频| 在线免费黄色毛片| 精品国产一区二区三区久久久狼牙 | 日本中文字幕在线播放| gogogogo高清视频在线| 精品成人一区二区三区免费视频| 中文字幕高清av| 久热免费在线视频| 麻豆精品传媒视频观看| 全网国产福利在线播放| 亚洲欧美日韩综合精品网| 国产高清免费在线播放| 欧美日韩一区二区三区在线播放 | 国产激情视频在线| 国产精品久久麻豆| 国产精品视频一区二区久久| jlzzjlzz欧美大全| 性国产高清在线观看| 精精国产xxxx视频在线| 99热播在线观看| 蜜桃视频中文字幕| 九七电影韩国女主播在线观看| 激情小说 在线视频| 青青草视频在线观看| 中文字幕中文字幕在线中高清免费版| 国产午夜精品一区理论片| 国产传媒在线播放| 99高清免费国产自产拍| 欧美精品一区二区三区免费| 中文字幕久热在线精品| 亚洲天堂影院在线观看| 国产精品一区二区婷婷| 国产精品区一区二| 羞羞视频在线观看免费| 国产无遮挡又黄又爽免费网站 | 成在在线免费视频| 国产一卡2卡3卡4卡网站免费| 国产三级视频在线看| 99中文字幕一区| 久久精品国产亚洲777| 国产无遮挡又黄又爽免费软件| 91中文字幕| 欧美精品se| 91最新在线| 午夜伦全在线观看| 一个人看的www免费观看视频| 天天操人人干| 国产网站免费观看| 天天操夜夜摸| 亚洲欧美久久婷婷爱综合一区天堂| 超碰97在线免费观看| 中文字幕在线看精品乱码| 亚洲电影先锋| 国产黄色av免费看| 九九热视频在线| 日韩中文字幕久久久经典网| 国产xxx在线| 国产亚洲精品自在线观看| 免费国产阿v视频在线观看| 亚洲电影视频在线| 91涩漫在线观看c| av中文天堂在线| 国产精品探花在线| h网站久久久| 国产日本在线视频| 好男人免费精品视频| 亚洲成人av高清| 三级小说一区| jlzzjlzz欧美大全| www在线播放| 在线亚洲精品自拍| 91黄色在线| 羞羞视频在线免费看| 香蕉视频免费在线播放| www.操.com| 欧美卡一卡二| 在线免费观看污| 亚洲视频精品在线观看| 国产三级免费观看| 夜夜嗨yeyeh| 日本在线观看| 国产鲁鲁视频在线观看特色| 黄色av网址在线免费观看| 最近中文字幕mv2018在线高清| 中文字幕久热在线精品| 国产成人无吗| 欧美在线中文| 九九精品九九| 国产激情在线观看| 羞羞视频在线免费看| 国产主播色在线| 91sp网站在线观看入口| 国产va在线观看| 色欧美在线观看| 国产videos| 国产免费视频在线| av免费在线一区二区三区| 国内a∨免费播放| 中文av在线播放| 国产中文伊人| 永久免费av网站| 中文字幕专区| 99久久99久久免费精品小说| 日本在线天堂| 国产日产一区二区| 欧美性猛交p30| 777电影在线观看| 中文字幕成人乱码在线电影| h视频在线网站| 国产成人天天5g影院| 日本国产在线| 在线国产一级| 国产精品yjizz视频网一二区| 欧美婷婷久久五月精品三区| 国产黄在线看| 国产一级片在线| 成人欧美亚洲| 成人免费一区二区三区牛牛| 国产高清视频在线播放| 国产在线一二| 国产主播福利在线| 伊人影院在线播放| 国产不卡视频| 2018狠狠干| 樱花草在线观看www| 国产三级视频在线看| 国产三区在线观看| 国产区av在线| 国产午夜电影| 91国内在线| 日本在线视频www鲁啊鲁| 日本福利在线| 九九热视频精品在线观看| www.狠狠色.com| 欧美日韩在线资源| 黄色国产网站在线播放| 日p在线观看| 日本a级黄色| 狠狠干天天干| 国产欧美久久久久久久久| 国产精品入口麻豆免费观看| 国产午夜电影| 亚洲成人av在线影院| 日本福利午夜视频在线| 九九免费视频| 国产三级做爰在线观看| 国产精品久久在线| 在线播放av网站| 国产永久av在线| 97高清视频| 欧美国产中文| 中文字幕网在线| 精品推荐国产麻豆剧传媒| www.操操操.com| 九七电影韩国女主播在线观看| 中文字幕不卡| 亚洲综合在线免费| 亚洲欧美国产另类首页| 国产午夜视频| 久热国产在线视频| 国产午夜视频在线观看| 天天插天天操|