Struts2中DispatherAction的功能
来源:互联网 发布:索尼手机录音软件 编辑:程序博客网 时间:2024/06/08 08:01
在Struts1中,DispatchAction帮助我们将将多个功能相似的业务逻辑放在同一个 Action 中实现,各个业务逻辑通过传入不同的参数来决定执行哪个操作方法。
在Struts2中,也默认的提供这种方法,使用这个功能,我们需要创建结构和execute方法相似的不同的方法,仅仅这个方法的名字改变了。
在这个例子里UserAction包含了和User相关的功能,像addUser,updateUser,deleteUser。
代码如下:
package com.zcl.struts.dispatchaction;import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport {private static final long serialVersionUID = 1L;private String message ;public String execute(){message = "Inside execute method" ;return SUCCESS ;}public String addUser(){message = "Inside add method" ;return SUCCESS ;}public String updateUser(){message = "Inside update method" ;return SUCCESS ;}public String deleteUser(){message = "Inside delete method" ;return SUCCESS ;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}
在Struts.xml中我们需要配置Action的映射指定那个方法将会被调用。
每一单独的Action映射对应一个Action类的方法。Struts.xml内容如下:
<struts><package name="default" extends="struts-default"><action name="User" class="com.zcl.struts.dispatchaction.UserAction"><result name="success">/success.jsp</result></action><action name="addUser" method="add" class="com.zcl.struts.dispatchaction.UserAction"><result name="success">/success.jsp</result></action><action name="updateUser" method="update" class="com.zcl.struts.dispatchaction.UserAction"><result name="success">/success.jsp</result></action><action name="deleteUser" method="delete" class="com.zcl.struts.dispatchaction.UserAction"><result name="success">/success.jsp</result></action></package></struts>我们使用相同的Action类在所有的Action映射中,当请求是的URL是User时execute方法将会被调用,其他的同理。
但是这个配置的确繁琐,现在我们使用动态方法调用,就不用使用这么麻烦的配置了,但是要注意命名规范,下面我们也可以将Struts,xml文件配置成这样
<package name="dispatcher" extends="struts-default"><action name="*User" class="com.zcl.struts.dispatcheraction.UserAction" method="{1}"><result name="success">/success.jsp</result></action></package>后面的method方法就是匹配前面的*代表的内容。
为每个方法配置一个单独的Action映射能够避免使用Struts2中提供的动态方法的使用。
在index.jsp页面中我们创建四个按钮去调用UserAction类中不同的方法。
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>Dispatcher</title> </head> <body> <s:form action="User"> <s:submit action="addUser" value="add"/> <s:submit action="updateUser" value="update"/> <s:submit action="deleteUser" value="delete"/> <s:submit></s:submit> </s:form> </body></html>通过表单调用UserAction中不同的方法来返回不同的结果
成功显示页面succses.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%><%@ taglib prefix="s" uri="/struts-tags" %><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title>Dispatcher</title> </head> <body> <h3>The success page</h3> <hr/> <h3>${message}</h3> </body></html>运行一下:
假如我们点击update按钮,运行如下:
- Struts2中DispatherAction的功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2 Filter的功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- Struts2的注解功能
- jQuery选择器的性能测试
- SDRAM内存驱动 的学习
- GridView 单击选择行,双击打开详细页面,鼠标移到某行上变色
- 关于ExtJS错误“例外被抛出且未被接住”问题
- 一片关于poi 读取xls写入数据库的文档
- Struts2中DispatherAction的功能
- mahout推荐介绍-3
- EXTJS 不显示窗体 标题框的办法
- ABAP学习开发总结之二:ABAP编辑器了解
- PreviewCallback中的data数据画图出现了花屏现象
- mib编写
- PHP文件操作函数
- mahout推荐介绍-2
- ABAP开发学习总结之一:ABAP入门基本要点