`

【转】Struts 2的DispatchAction功能例题

 
阅读更多

Struts 2的DispatchAction功能例题

 

在Struts 2中,所有的动作(action)都默认带有DispatchAction功能。要使用此功能,我们只需创建与execute方法类似,只有名称改变的方法。

 

在UserAction类中包含所有和用户有关联的功能,比如:addUser(), updateUser()和deleteUser()。

 

 

[java] view plaincopy
  1. package vaannila;  
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;  
  4.   
  5. public class UserAction extends ActionSupport{  
  6.   
  7.     private String message;  
  8.       
  9.     public String execute()  
  10.     {  
  11.         message = "Inside execute method";  
  12.         return SUCCESS;       
  13.     }  
  14.       
  15.     public String add()  
  16.     {  
  17.         message = "Inside add method";  
  18.         return SUCCESS;       
  19.     }  
  20.       
  21.     public String update()  
  22.     {  
  23.         message = "Inside update method";  
  24.         return SUCCESS;       
  25.     }  
  26.       
  27.     public String delete()  
  28.     {  
  29.         message = "Inside delete method";  
  30.         return SUCCESS;       
  31.     }  
  32.   
  33.     public String getMessage() {  
  34.         return message;  
  35.     }  
  36.   
  37.     public void setMessage(String message) {  
  38.         this.message = message;  
  39.     }  
  40.   
  41. }  

 

 

我们需要指定动作(action)映射,在动作(action)类中的哪个方法被调用。在动作(action)类中,需要为单独的动作(action)映射创建相应的方法。下面是struts.xml文件中的动作(action)映射:

 

[xhtml] view plaincopy
  1. <!DOCTYPE struts PUBLIC  
  2. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  3. "http://struts.apache.org/dtds/struts-2.0.dtd">  
  4.   
  5. <struts>  
  6.     <package name="default" extends="struts-default">  
  7.         <action name="User" class="vaannila.UserAction">  
  8.             <result name="success">/success.jsp</result>  
  9.         </action>        
  10.         <action name="addUser" method="add" class="vaannila.UserAction">  
  11.             <result name="success">/success.jsp</result>  
  12.         </action>  
  13.         <action name="updateUser" method="update" class="vaannila.UserAction">  
  14.             <result name="success">/success.jsp</result>  
  15.         </action>  
  16.         <action name="deleteUser" method="delete" class="vaannila.UserAction">  
  17.             <result name="success">/success.jsp</result>  
  18.         </action>    
  19.     </package>  
  20. </struts>  

 

 

需要注意的是在所有的动作(action)映射中使用的是同一个动作(action)类。当请求URL是"User",那么UserAction类中的execute()方法将被调用。当请求URL是"addUser",那么UserAction类中的add()方法将被调用。使用action标签的method属性进行设置。update和delete的请求都是类似的。

 

在动作(action)类,为每个单独的动作(action)映射设置方法,在Struts 2中的另外一个特性动态方法调用(Dynamic Method Invocation)也可以实现。在下一篇中我们将说明如何使用它。

 

在index.jsp页面中,我们创建了四个不同的按钮来调用不同的方法。下面是index.jsp的内容:

 

[xhtml] view plaincopy
  1. <%@ page language="java" contentType="text/html; charset=ISO-8859-1"  
  2.     pageEncoding="ISO-8859-1"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <%@taglib uri="/struts-tags" prefix="s" %>  
  5. <html>  
  6.     <head>  
  7.        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">  
  8.        <title>Insert title here</title>  
  9.     </head>  
  10.     <body>  
  11.        <s:form action="User" >  
  12.            <s:submit />  
  13.            <s:submit action="addUser" value="Add" />  
  14.            <s:submit action="updateUser" value="Update" />  
  15.            <s:submit action="deleteUser" value="Delete" />  
  16.        </s:form>  
  17.     </body>  
  18. </html>  

 

 

下面是运行的结果。

 

当用户点击Add按钮,UserAction类中的addUser()方法将被执行,并将结果显示给用户。

分享到:
评论

相关推荐

    struts中dispatchAction用法

    2. **配置struts-config.xml**:在Struts的配置文件中,为DispatchAction创建ActionMapping,并设置`parameter`属性为请求参数,用于区分不同的业务方法。 ```xml ``` 3. **发起请求**:用户通过URL来触发不同...

    struts DispatchAction

    使用DispatchAction的另一个优点是,它可以结合Struts的国际化和主题功能,为不同的用户群体提供定制的视图。此外,通过将Action类中的方法组织成逻辑相关的组,可以更方便地进行权限控制和事务管理。 然而,需要...

    Struts(DispatchAction) + 存储过程 => 实现分页效果

    总结,通过结合Struts的DispatchAction和存储过程,我们可以高效地实现分页功能,优化性能并提供良好的用户体验。这种方案减少了服务器与数据库之间的交互次数,降低了网络延迟,同时存储过程的预编译特性也有助于...

    Struts 之 DispatchAction

    2. **实现DispatchAction**:接下来,你需要创建一个继承自`org.apache.struts.actions.DispatchAction`的类。例如,我们可以创建`YourDispatchAction.java`: ```java public class YourDispatchAction extends ...

    Struts2常用标签&DispatchAction.rar

    03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar03Struts2常用标签&DispatchAction.rar

    Struts_DispatchAction的使用

    最近自学java中的框架-struts写了一些小例子,这都是很经典的程序,如果大家瞧得起要下载去看看,顺便给俺找找不足的地方。我的qq 821865130 email qingtian_hechen@163.com 希望大家能多多给我帮助。在此谢谢各位!...

    Struts中等同于DispatchAction类方法

    Struts框架是Java Web开发中一个非常重要的MVC(Model-View-Controller)...尽管这种方法在某些场景下是有效的,但随着Struts框架的发展,现在有更好的实践方式来实现相同的功能,比如使用Struts 2的注解和拦截器机制。

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    Struts1中怎样实现DispatchAction配置多个input属性\Struts1中怎样实现DispatchAction配置多个input属性

    struts+oracle实现DispatchAction类

    在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...

    利用struts标签,dispatchAction,实现增删改查

    2. **DispatchAction的使用**: - **配置Action**:在struts-config.xml中,我们需要定义DispatchAction,指定其对应的类以及各个请求参数与方法的映射关系。例如: ```xml &lt;param name="operation"&gt;add `...

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证的示例

    解决Struts1.x中使用Validator框架对DispatchAction不同方法使用不同的字段验证 你可以先参看我的blog文章:http://blog.csdn.net/qjyong/archive/2008/11/16/3311688.aspx 再决定是否下载。

    DispatchAction

    在Struts框架中,`DispatchAction`和`MappingDispatchAction`是两种常见的控制器组件,用于处理用户请求。它们是Action接口的实现类,主要用于映射HTTP请求到特定的方法,从而实现业务逻辑的分发。 首先,让我们...

    struts2范例教程

    ### Struts2范例教程:深入理解MVC与框架组件 ...通过以上步骤,我们可以看到Struts2框架不仅简化了MVC模式的实现,还提供了丰富的配置选项和强大的功能支持,使得Web应用的开发变得更加高效和便捷。

    DispatchAction实例

    2. **配置Struts-config.xml**:接下来,在`struts-config.xml`配置文件中,为`DispatchAction`创建一个或者多个配置项,每个配置项对应一个请求。在`&lt;action&gt;`元素中,使用`parameter`属性指定区分不同业务的方法的...

    Struts2详细实例教程

    Struts2是Struts1的升级版,它基于MVC设计模式,旨在简化Web应用的开发过程,提供更为灵活和强大的功能。相比于Struts1,Struts2在架构上更加清晰,组件更加模块化,支持更丰富的插件体系,以及更好的国际化支持。 ...

    struts 简单框架搭建

    Struts2是其第二代版本,提供了更强大的功能和更好的灵活性,使得开发更加高效。 在进行Struts2框架的简单搭建时,首先我们需要确保开发环境已经准备就绪。这包括安装Java Development Kit (JDK)、集成开发环境(如...

    很好的Struts2教程

    ### Struts2框架详解:从经典MVC到现代Web应用 #### 经典MVC模式与Struts2的关系 在探讨Struts2之前,我们首先理解MVC(Model-View-Controller)模式的重要性。MVC是一种软件架构模式,用于简化复杂的应用程序开发...

    org.apache.struts缺少所需包

    import org.apache.struts.action.ActionForm;import org.apache.struts.action.ActionForward;import org.apache.struts.action.ActionMapping;import org.apache.struts.actions.DispatchAction等缺少

Global site tag (gtag.js) - Google Analytics