您现在的位置是:首页 >

苹果x使用教程视频 Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多

火烧 2022-05-06 05:07:09 1064
Strut 1.x系列教程(20):使用Eve tDi atchActio 类处理一个form多   虽然Looku Di atchActio 类可以很好地处理拥有多个提交按钮的Form 但是必须要和
苹果x使用教程视频 Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多

Struts1.x系列教程(20):使用EventDispatchAction类处理一个form多  

  虽然LookupDispatchAction类可以很好地处理拥有多个提交按钮的Form 但是必须要和属性文件相关联 而且还得在getKeyMethodMap方法中进行key和Action方法的映射 使用起来十分不方便 从Struts 开始 加入了另一个用于处理多个提交动作的EventDispatchAction类 这个类也是DispatchAction的子类 它在使用上要比LookupDispatchAction类容易的多 EventDispatchAction类的基本原理是通过<action>元素的parameter属性指定多个动作 中间用逗号( )分隔 每个动作实际上就是< submit>标签的property属性值 这样EventDispatchAction类就可以根据每个< submit>标签的属性值来确定用户按的是哪个提交按钮了

  我们可以按如下三步来使用EventDispatchAction类

  【第 步】实现EventDispatchAction的子类

  在<samples工程目录>srcaction目录中建立一个MyEventDispatchAction java文件 代码如下

     package action;  import java io PrintWriter;  import javax servlet *;  import  apache struts action *;  import  apache struts actions *;    public class MyEventDispatchAction extends EventDispatchAction   {            // 处理print动作      public ActionForward print(ActionMapping mapping  ActionForm form               HttpServletRequest request  HttpServletResponse response)      {          try          {              response setCharacterEncoding( GBK );              PrintWriter out = response getWriter();                          out println( 打印成功! );          }          catch (Exception e)          {          }          return null;      }       // 处理save动作      public ActionForward save(ActionMapping mapping  ActionForm form               HttpServletRequest request  HttpServletResponse response)      {          try          {              response setCharacterEncoding( GBK );              PrintWriter out = response getWriter();              out println( 保存成功! );          }          catch (Exception e)          {          }          return null;      }   }

  在MyEventDispatchAction类中有两个方法 print和save 分别用来处理property属性值为 print 和 save 的< submit>标签提交的请求动作

  【第 步】配置EventDispatchAction类

  打开struts config xml文件 在 <action mappings>元素中加入如下的内容

   <action name =  firstValidatorForm  path= /event  type= action MyEventDispatchAction  validate= false  parameter= print save />

  【第 步】实现有多个提交按钮的JSP页面

  在Web根目录中建立一个moreSubmit jsp文件 代码如下

     <%@ page pageEncoding= GBK %>  <%@ taglib uri=  prefix= %>  <>    <head>      <title>多提交演示</title>    </head>    <body>                 <:form action= event  >         name <:text property= name  />&nbsp;&nbsp;<p>               <:submit property= print  value= 打印 />               <:submit property= save  value= 保存 />      </:form>      </body>   </>

  在编写moreSubmit jsp文件时要注意 打印 和 保存 按钮的property属性必须和<action>动作中的parameter参数值一致 也就是 print 和 save

  启动Tomcat后 在IE中输入如下的URL来测试程序

  

  为了区别提交请求参数和其他参数 在< submit>标签的property属性值还可以有一个后缀 x (<action>元素的parameter属性值仍然是 print save 如 打印 按钮的代码可以写成如下形式

lishixinzhi/Article/program/Java/ky/201311/28126  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码