知识大全 使用ActionForm一次获取表单的所有参数

Posted

篇首语:人非生而知之,孰能无惑?惑而不从师,其为惑也,终不解矣。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用ActionForm一次获取表单的所有参数相关的知识,希望对你有一定的参考价值。

使用ActionForm一次获取表单的所有参数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  用过Jakarta Struts的兄弟都知道ActionForm的使用方法和她在Struts框架中所起的作用 但是您是否在为要给ActionForm编写一大堆setter和getter方法而感到厌倦和疲惫呢?的确 我是厌倦了 所以我要寻求新的方法 我第一反映就是想使用Map接口 将所有的表单参数全部放进HashMap中 然后在Action中get出这个Map 并进行业务逻辑的操作 有了想法当然要去试验了 实践才是检验真理的唯一标准   首先要编写一个扩展ActionForm的类 代码如下(由于篇幅 我只列出了代码的关键部分):       package jacktan struts formbean;     import java util *;     import javax servlet *;     import apache struts action *;     public class CustomForm extends ActionForm       private Map formvalueMap = new HashMap();      public void setFormvalueMap(Map p_FormvalueMap)       this formvalueMap = p_FormvalueMap;            public Map getFormvalueMap()        return this formvalueMap;            public void setFormvalue(String key Object value)       formvalueMap put(key value);          public Object getFormvalue(String key)       return formvalueMap get(key);              下面对上面的代码一一做解释   第 行定义了一个HashMap类的实例变量 这个Map用于存放表单递交上来的参数值 作为键值对存在   第 行的setFormvalueMap()方法用于设置实例变量formvalueMap;  第 行的getFormvalueMap()方法用于获取实例变量formvalueMap 这个方法将在Action类中调用 替代了以前在Action类中调用大量的(CustomForm)form getXXX()方法   第 行是关键的方法 setFormvalue()这个方法就是取代以前在ActionForm中大量的setXXX()方法 用于接受表单传递上来的输入值 注意这个方法的参数 key是一个String类型的 用作Map的key value是Object类型的 这个参数就是表示表单传送过来的各个输入值   第 行是getFormvalue()方法 用于从Map中根据key返回一个value对象     好了 ActionForm的任务完成了 不过离目标还有好大一段距离 目前只完成了三分之一的工作 我们继续干!    有了ActionForm接下来就是要编写Action类了 代码如下(由于篇幅 我只列出了代码的关键部分)        package jacktan struts action;     import java util *;     import javax servlet *;     import apache struts action *;     import jacktan struts formbean CustomForm      public class CustomAction extends Action       public ActionForward execute(                 ActionMapping p_Mapping                  ActionForm p_Form                  HttpServletRequest p_Request       HttpServletResponse p_Response)        throws Exception        Map formvalues =            ((CustomForm)p_Form) getFormvalueMap();        return p_Mapping findForward( Success );               CustomAction类的关键行在第 行 使用在CustomForm类中定义的 getFormvalueMap()方法一次就将表单中所有的提交参数收集完毕 省掉了以前要使用很多getXXX()方法从ActionForm中获取表单值的做法   好了 接下来是要编写JSP页面了 因为我们的ActionForm使用特殊的方法接受参数值 所以在写表单页面的时候也要使用特殊的签名 代码如下     <:form action= login ><table width= %  border= >    <tr>     <td width= % >   </td>     <td width= % >   </td><td width= % rowspan= valign= top ><:errors/></td>    </tr>    <tr>     <td>   </td>     <td height= >用户名</td>    </tr>    <tr>     <td> </td><td height= ><:text property= formvalue(username) size= maxlength= /></td>    </tr>    <tr>     <td>   </td>     <td height= >密码</td>    </tr>   <tr>    <td>   </td><td height= ><:password property= formvalue(password) size= maxlength= redisplay= false /></td>    </tr>    <tr>     <td> </td><td height= ><:submit value= 登录 /> <: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= jacktan struts formbean CustomForm />  </form beans>    在<action mappings>段输入以下代码     <action  path= /login   type= jacktan struts action CustomAction   name= addDeviceForm   scope= request >  <forward name= login path= main jsp />  </action>    大功告成 所有的任务都完成了 为了检测是否可以正确运行 我在Action类中加入如下测试代码:       Set set = formvalues entrySet();     Iterator it = erator();     while( it hasNext() )       Map Entry me = (Map Entry)it next();       System out println((String)me getKey);   System out println((String)me getvalue);      cha138/Article/program/Java/JSP/201311/19425

相关参考

知识大全 asp中get post提交表单区别

  asp教程中getpost提交表单区别  Get和Post方式的区别有点  get是从服务器上获取数据post是向服务器传送数据  get是把参数数据队列加到提交表单的ACTION属性所指的URL

知识大全 jquery获取表单元素里面的值示例代码

  本文为大家详细介绍下通过jquery获取表单元素CheckBoxRadio等的值有需求的朋友可以参考下希望对大家有所帮助  jquery笔记   代码如下 $(input[na

知识大全 jquery 获取表单元素里面的值示例代码

本文为大家详细介绍下通过jquery获取表单元素CheckBoxRadio等的值有需求的朋友可以参考下希望对大家有所帮助   jquery笔记复制代码代码如下:$(“input[name=r

知识大全 jQuery表单获取和失去焦点输入框提示效果

jQuery表单获取和失去焦点输入框提示效果  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!lish

知识大全 原生JS实现表单checkbook获取已选择的值

原生JS实现表单checkbook获取已选择的值  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!本文

知识大全 jQuery表单获取和失去焦点输入框提示效果的实例代码

jQuery表单获取和失去焦点输入框提示效果的实例代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 struts2.0表单提交带参数问题

  今天在学习的时候碰到了这个问题不知道怎么搞定了也就是在提交表单的时候另外传递一个参数过去这个参数不是那些里面的东西比如要编辑一篇新闻原来转过来了这个新闻对应的编号类似这样intidd=(null=

知识大全 我在 USER action 中如何获取表单中控

我在USERaction中如何获取表单中控  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!<:

知识大全 绑定变量的获取

  对于带有绑定变量的SQL语句ORACLE在第一次执行的时候将会进行绑定变量的PEEK是否PEEK是否隐含参数_OPTIM_PEEK_USER_BINDS控制默认为TRUEORACLE在第一次  P

知识大全 javascript 表单之间的数据传递问题

  在Dreamweaver中插入FLASH后还可以有很多的控制参数点属性面板右下的参数钮就会有参数和值的加入大家可以自由的控制  以下内容摘自FlashMX帮助文档  参数和属性  下列标记属性和参