DispatchAction是一个抽象类,继承于Action。它帮助我们使用一个Action类,来集中处理多个操作,从而节省了类的数目。
例如:下面的例子。按照struts的流程来分析,JSP-->ActionServlet-->struts-config.xml-->Action-->ActionForward-->browser
1.JSP页面提交表单到ActionServlet,ActionServlet截取URL,然后根据struts-config.xml配置文件去找相应的Action,执行相应的操作(这里Action只有一个即UserAction,如何区别是何种操作?---根据方法名来找到不同的操作。)颜色相同一定要匹配。
action="usermaintain.do?command=add";
action="usermaintain.do?command=del";
action="usermaintain.do?command=modify";
2.UserAction继承于DispatchAction,包含了三个操作方法,分别是add(),del(),modify(),方法名称与form表单传递的属性一一对应
public class UserAction extends DispatchAction {
public ActionForward add(mapping, form, request, response) throws Exception {
return mapping.findForward("add_success");
}
public ActionForward del(mapping, form, request, response) throws Exception {
return mapping.findForward("del_success");
}
public ActionForward modify(mapping, form, request, response) throws Exception {
return mapping.findForward("modify_success");
}
}
3.struts-config.xml中,parameter的属性值是可以任意起的,即command可以是其他。只要保证form表单中传参数时与之统一就行。
<action-mappings>
<action path="/user/usermaintain"
type="com.bjsxt.drp.bussiness.usermgr.actions.UserAction"
name="userForm"
scope="request"
parameter="command"
>
<forward name="add_success" path="/user/usermaintain.do?command=list" redirect="true"/>
<forward name="del_success" path="/user/usermaintain.do?command=list" redirect="true"/>
<forward name="modify_success" path="/user/usermaintain.do?command=list" redirect="true"/>
<forward name="list_success" path="/user/userlist.jsp"/>
<forward name="find_success" path="/user/usermodify.jsp"/>
</action>
</action-mappings>
这里的forward有的是直接提交到一个JSP页面,有的是提交到另一个动作。forward中name值和UserAction中findForward匹配。
注:1.DispatchAction中各个操作方法的参数如add(),del(),modify()和execute()方法的参数相同。
2.DispatchAction通过方法名来区别各个不同的操作。
3.在调用DispatchAction的时候command参数是不能为空的,如果空,DispatchAction会调用unspecified方法并抛出异常。详见下一遍DispatchAction的流程
4.UserAction 可以复写execute方法,但复写完成之后必须显示调用它的上层实现DispatchAction.execute()
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/switzerland/archive/2008/10/10/3051950.aspx
分享到:
相关推荐
在本项目中,我们关注的是"Struts+Oracle实现DispatchAction类",这是一个将Struts框架与Oracle数据库结合使用,以实现业务逻辑处理的例子。 DispatchAction是Struts框架中的一个关键组件,它扮演着控制器的角色,...
在本教程中,我们将深入探讨如何利用Struts的标签库和DispatchAction来实现数据的增删改查操作,这对于初学者来说是一个非常实用的学习主题。 首先,`DispatchAction`是Struts中的一个特殊Action类,它允许我们根据...
1. 转到展示层时,需要配置 forward,每一次转到展示层,相信大多数都是直接转到 jsp,而涉及到转向,需要配置 forward,如果有十个展示层的 jsp,需要配置十次 struts。 2. Struts 的 Action 必需是 thread-safe ...
React艺术==================这是什么...执照关于版本图表:2.2.7如何开始'npm install' 'npm start' 打开浏览器并转到http://127.0.0.1:3000/webpack-dev-server/client?http://0.0.0.0:3000如何使用yuidoc创建文档在...
对于地图的动态效果,ECharts提供了丰富的API,比如`dispatchAction`可以用来触发地图上的各种事件,如点击、鼠标悬浮等,从而实现数据的动态更新或者交互效果。此外,还可以通过`visualMap`组件进行数据的颜色映射...
ECharts提供了一些内置的方法,如`dispatchAction`,可以用来改变相机视角。 6. **自定义渲染**:如果ECharts内置的3D动画效果无法满足需求,还可以通过`renderer`参数使用自定义的WebGL渲染器,实现更复杂的3D动画...
此外,ECharts还提供了`dispatchAction` API,通过它可以编程方式地控制地图的缩放和移动,这在交互式应用中非常有用。 在提供的文件列表中,`index.html`是主网页文件,可能包含了ECharts的HTML结构和JavaScript...
- **DispatchAction**:一种特殊的 Action 类,可以将不同的 actionName 分派到不同的方法中处理。 - **MappingDispatchAction**:允许开发者为每个请求参数定义不同的处理方法。 - **LookUpDispatchAction**:与...
3. DispatchAction 是 Struts 提供的一个特殊 Action,允许根据请求参数动态调用不同的执行方法,增强了 Struts 的灵活性。相比于普通 Action,DispatchAction 需要多配置一个 `method` 属性,用来指定要调用的方法...
4.12. dispatchAction是用什么技术实现的? 13 4.13. struts2.0的mvc模式?与struts1.0的区别? 13 4.14. struts的处理流程。 13 4.15. Struts/webwork 的工作机制,它有哪些标签 18 3 Spring部分 18 4.1. spring工作...
- 实现了类似于Struts的`DispatchAction`,继承该类的Servlet可以通过指定方法名的方式调用相应的方法。 - 用户登录后,可以获取到`CURRENT_USER`和`ACCESS_LEVEL`两个属性。 - **继承后可访问属性:** - `out`: ...
public class ProcessAction extends DispatchAction { public ActionForward show(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { return mapping....
4. **DispatchAction**:Struts1中的一个特殊Action,支持方法调度。 5. **FormFile**:用于封装文件上传数据的对象。 6. **HttpServletRequest** 和 **HttpServletResponse**:分别代表HTTP请求和响应对象。 #### ...
- **使用DispatchAction**:如果一个Action需要执行多种不同的操作,可以考虑使用DispatchAction来简化代码结构。 - **增强灵活性**:通过使用`DynaActionForm`支持更灵活的表单数据处理。 综上所述,Struts框架的...
同时,配合使用ECharts的`dispatchAction`方法来更新地图状态。 5. **3D交互与优化**:为了让用户体验更好,可以考虑增加平移、缩放、旋转等3D交互功能。同时,对于大数据量的地图,进行适当的性能优化,如延迟加载...
在本实例中,Struts通过DynaActionForm和DispatchAction实现了动态表单和动作调度,简化了Action和ActionForm的编写。此外,使用Tile框架可以有效地进行页面布局,而自定义标签则用于处理分页和身份验证。 2. ...
在Struts框架中,`FileAction`继承自`DispatchAction`,并实现了文件上传的相关逻辑。首先,通过`ActionForm`对象中的`FileActionForm`获取上传文件的信息。这里的关键在于使用`FormFile`类来处理文件数据。`...