`

LookupDispatchAction类处理一个form多个submit

阅读更多

ACTION中重定向

@Override
public String list() throws Exception {
    HttpServletRequest request = ServletActionContext.getRequest();
    String loginName = request.getParameter("j_username");
    String password = request.getParameter("j_password");
    HttpSession session = request.getSession();
    session.setAttribute("username", loginName);
    session.setAttribute("password", password);
        
//你要转向的页面的地址.

    String url = new String( ("../j_spring_security_check?j_username="
        +java.net.URLEncoder.encode(loginName)
        +"&j_password="+password).getBytes("UTF-8"),"ISO8859_1");

    //你要转向的页面的地址.
    HttpServletResponse response = ServletActionContext.getResponse();
    response.sendRedirect(url);
   
//重定向后,别忘了返回null值,而不能再返回return    

    //mapping.findForward("****");      
    return null;
    
//return SUCCESS;            

}

有时在HTML form中需要提供多个提交按钮,这时LookupDispatchAction类就派上用场了。LookupDispatchAction是DispatchAction的子类,用于处理客户端代码中有一个Form含有多个提交按钮的情况。为了使用LookupDispatchAction,首先来编写客户端代码,代码如下:

 

<html:form action="myaction">
     
   
<html:submit property="action">
       
<bean:message key="submit.print" />
   
</html:submit>
   
<html:submit property="action">
       
<bean:message key="submit.save" />
   
</html:submit>
</html:form>

    其中submit.print和submit.save是属性文件中的key.action实际上是提交按钮的name属性值。在提交时,会将property和<bean:message key="……" />作为请求参数和参数值传给Struts动作。如save按钮被单击时,请求URL为http://localhost:8080/……/myaction.do?action=save.其中save为submit.save在属性文件中对应的属性值,也就是说submit.save = save.

    接下来我们编写一个LookupDispatchAction的子类,代码如下:

 

package action;
import
 org.apache.struts.actions.LookupDispatchAction;
 
  
public class MyLookupDispatchAction extends
 LookupDispatchAction
  {
      
//
  为了方便描述,在这里未使用属性文件,只是直接将key和value的映射添加到Map对象中
      
//
  读者可以在getKeyMethodMap方法中从属性文件中读取相应的key-value对
      
//  来添加到Map对象中

      protected Map getKeyMethodMap()
      {
          Map m 
= new
 HashMap();
          m.put(
"submit.print""print"
);
          m.put(
"submit.save""save"
);
          
return
 m;
      }
      
public
 ActionForward print (ActionMapping mapping, ActionForm form,
              HttpServletRequest request, HttpServletResponse response)
      {
          
// 处理print代码

      } 
      
public
 ActionForward save(ActionMapping mapping, ActionForm form,
              HttpServletRequest request, HttpServletResponse response)
      {
          
// 处理save代码

      } 
  }

    在编写LookupDispatchAction的子类时要注意必须实现getKeyMethodMap方法,在这个方法中需要进行key和Action方法的映射。下面的代码用来配置MyLookupDispatchAction.

 

<action path="/moresubmit" type="action.MyLookupDispatchAction" parameter="action" />

    其中parameter属性指定了请求URL中由提交按钮生成的请求参数名

分享到:
评论

相关推荐

    java处理一个form多个submit

    Java 处理多个 Submit 按钮的方法 在 Web 应用中,一个 HTML form 标签中可能有多个 submit 按钮,每个按钮执行不同的操作。Java 通过不同的方式可以实现对多个 submit 按钮的处理,下面将详细介绍 Struts1 和 ...

    Struts2教程:处理一个form多个submit.doc

    在处理一个表单(form)中存在多个submit按钮的情况时,Struts2提供了一种优雅的方式来区分用户点击了哪个按钮,而无需像Struts1那样使用额外的动作类(如LookupDispatchAction或EventDispatchAction)。 在传统的...

    EventDispatchAction类处理一个form多个submit

    ### EventDispatchAction类处理一个form多个submit #### 一、背景与概述 在Web应用程序开发过程中,表单的提交操作是非常常见的场景之一。对于复杂的业务逻辑而言,有时我们需要在一个表单中提供多个提交按钮,...

    LookupDispatchAction 是使用方法

    默认情况下,Struts1的动作类只有一个`execute()`方法,但使用`LookupDispatchAction`时,可以定义多个处理特定请求的方法,每个方法对应一个特定的请求参数。 二、配置与使用 1. 配置struts-config.xml 首先,需要...

    DispatchAction、LookupDispatchAction、SwitchAction的应用

    其核心作用是允许将多个原本需要独立 Action 处理的任务合并到一个 Action 中进行处理,从而简化了 Action 的管理和维护工作。 **1.1 为什么要使用 DispatchAction** 在传统的 Struts 应用中,每一个业务逻辑操作...

    Struts(二)List_Map_LookupDispatchAction_Validate

    1. **LookupDispatchAction**: 这是Struts1中的一个特殊类型的动作,主要用于处理多个请求映射到同一个Action的情况。通常,一个Action对应一个请求,但有时我们可能需要一个Action处理多个不同的业务逻辑。...

    基于JAVA SMART系统-系统框架设计与开发(源代码+论文).zip

    其中的LookupDispatchAction类是允许你指定一个具有多个方法的类,每一个方法的调用都基于配置文件中指定的一个特殊请求参数值,利用该参数值反向查询资源绑定,并将它与类中的一个方法进行匹配。从这些功能可以看出...

    LookUpDispachAction的用法详解

    通常,一个Action类对应一个或多个业务逻辑方法,每个方法处理特定的用户请求。然而,当一个Action需要处理多种操作时,LookUpDispatchAction就显得特别有用。它通过基于请求参数的值来决定执行哪个业务方法,而不是...

    J2EE_高级Action

    - 创建一个继承自`LookupDispatchAction`的类,并为其添加多个处理方法。 - 在Action类内部通过`lookupMethod`方法来决定调用哪个处理方法。 - 页面通过不同的提交按钮提交请求。 **2. 耦合性评价** - `...

    struts LookupdispathAction类使用实例

    - 在 `struts-config.xml` 配置文件中,需要为 `LookupDispatchAction` 创建一个 `&lt;action&gt;` 元素,并指定对应的Action类。然后,可以为每个方法创建子元素 `&lt;forward&gt;`,指定不同的视图或结果页面。 - 示例配置:...

    学习struts很好的文档

    Struts支持在一个Web应用中配置多个模块,每个模块都可以有自己的配置文件,便于管理复杂的Web应用程序。 #### 四、Struts组件 ##### 1.ActionServlet类 Struts的核心组件,负责接收HTTP请求、解析请求、调用...

    struts1.x和mysql整合的登陆例子

    在这个例子中,可能会使用`LookupDispatchAction`,这是一个特殊类型的Action,它允许根据用户提交的按钮值(submit标签的name属性)来调用不同的业务方法。 在用户界面设计中,静态验证是先于服务器端验证的一步,...

    struts1.x技术课程讲解.pdf

    1. **Action**:Struts1.x 中的 Action 类负责处理用户请求,执行业务逻辑,并返回一个 ActionForward 对象来控制页面流转。 - **DispatchAction**:一种特殊的 Action 类,可以将不同的 actionName 分派到不同的...

    struts2.0之action

    Struts2.0是Java Web开发中的一个框架,它的核心组件是Action,它负责处理用户的请求并进行业务逻辑处理。相较于Struts 1.x,Struts 2.0的Action模型有着显著的区别。 在Struts 1.x中,Action类需要继承`org.apache...

    轻量级J2EE企业应用实战源码 3 下

    1. **LookupDispatchAction**: 这个文件可能涉及到Struts框架中的`LookupDispatchAction`,这是一个用于处理多视图的Action,它可以根据用户请求的参数来决定调用哪个业务方法。这在实现复杂的视图跳转和逻辑控制时...

    《轻量级J2EE企业应用实践-tructs+sping+hibernate整合开发》

    `DynaValidatorForm`是Struts的一个动态表单类,可以方便地对用户输入的数据进行验证。 Spring与Hibernate的整合使得业务对象可以直接由Spring管理,而无需直接在Action类中进行数据库操作。`LookupDispatchAction`...

    struts2学习笔记

    在例1的`struts.xml`配置中,我们创建了一个名为`HelloWorld`的Action,它对应`tutorial.HelloWorld`类,并且当请求`HelloWorld.action`时,Struts2会实例化这个类并调用`execute()`方法。`result`元素指定了执行`...

    轻量级J2EE企业应用实战——Struts+Spring+Hibernate整合开发 源码第二部分

    在源码中的`ForwardAction`类可能就是Struts中的一个自定义动作,它会根据配置将请求转发到指定的页面或业务处理。 Spring是一个全面的Java应用框架,它提供了依赖注入(DI)、面向切面编程(AOP)以及用于事务管理...

    Struts开发指南03

    ActionForward代表一个URL,指示下一步应该去哪里,可以是另一个JSP页面或者一个包含更多业务处理的Action。 以上流程以Struts自带的example示例程序为例,展示了登录、注册和修改功能的实现。尽管这个例子展示了...

Global site tag (gtag.js) - Google Analytics