struts的Dispatch形式
2015-09-16 21:32
405 查看
在上篇文章中简单的描述了struts的应用,但是其存在一个小小的问题,就是每一个请求,都会有一个与之对应的Action。比如说查询用户,就会有一个查询用户的Action;以此类推,增加也会有一个,这样就会使得Action类越来越多,不利于维护。为此出现了另外一种形式,将每一个模块的需求(不如用户的增删改查)封装到一个Action里面,而那些需求则变成这个Action的方法。访问的时候只需要传递一个参数来区分要访问的是哪个方法就可以了。具体如下:
1、UserAction对象:
2、struts-config.xml文件配置:
注意:在上面的访问中一定不要忘记了配置参数parameter。(其余的配置参见上篇博客struts应用)
3、客户端访问:
<a href="user/list.do?command=list" title="请点击访问用户管理系统">用户管理</a><br><br>
<a href="user/list.do" title="请点击访问用户管理系统">用户管理</a><br>
4、总结:通过上面的方法,很大程度上减少了Action的数量,并且把相关的业务方法集合在一起使得维护起来更容易。
1、UserAction对象:
<span style="font-size:18px;">/** * UserAction继承DispatchAction;而DispatchAction则继承Action */ public class UserAction extends DispatchAction { /** * 缺省方法,当访问时不加参数,则会访问此方法 */ @Override protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //调用业务逻辑操作 List userList = UserManager.getInstance().findAllUserList(); request.setAttribute("userlist", userList); return mapping.findForward("list_success"); } /** * 查询所有用户 * 其中的参数和execute方法中的参数一样 */ public ActionForward list(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //调用业务逻辑操作 List userList = UserManager.getInstance().findAllUserList(); request.setAttribute("userlist", userList); return mapping.findForward("list_success"); } /** * 添加用户 */ public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { //获取从页面表单中提交过来的值 UserActionForm uaf = (UserActionForm)form; User user = new User(); //将ActionForm中的值传递到User实体中 BeanUtils.copyProperties(user, uaf); user.setCreateDate(new Date()); //调用业务逻辑操作 UserManager.getInstance().addUser(user); return mapping.findForward("success"); } ...... }</span>
2、struts-config.xml文件配置:
<struts-config> <form-beans> <form-bean name="userActionForm" type="com.bjpowernode.drp.web.forms.UserActionForm" /> </form-beans> <action-mappings> <action path="/user/list" type="com.bjpowernode.drp.web.actions.UserAction" scope="request" name="userActionForm" parameter="command"> <forward name="list_success" path="/user/user_list.jsp" /> <forward name="success" path="/user/list.do" /> <!-- ...... --> </action> </action-mappings> </struts-config>
注意:在上面的访问中一定不要忘记了配置参数parameter。(其余的配置参见上篇博客struts应用)
3、客户端访问:
<a href="user/list.do?command=list" title="请点击访问用户管理系统">用户管理</a><br><br>
<a href="user/list.do" title="请点击访问用户管理系统">用户管理</a><br>
4、总结:通过上面的方法,很大程度上减少了Action的数量,并且把相关的业务方法集合在一起使得维护起来更容易。
相关文章推荐
- java-web 资料整理
- SpringMvc(环境搭建)
- Java:按值传递还是按引用传递详细解说
- Selenium2(JAVA) Web自动化测试实战 电子书百度阅读正式上架 欢迎试读购买
- spring的事务传播特性
- java 编程思想 阅读笔记(1)
- eclipse错误: 找不到或无法加载主类 main.Main
- 简易计算器Netbeans 图形界面
- Java文件操作大全
- SSH-Struts(两)—调节器(ActionServlet)
- Java中的“别名现象”
- javaEE --- Hibernate
- Java多线程与并发库高级应用 学习笔记 1-9课
- eclipse 加载xml头文件的xsd
- Java语言的基础语法(二)
- JAVA异常处理
- Axis与Spring的集成
- "Class not found: javac1.8"问题总结
- 线程安全的实现延迟初始化的方案
- java学习之Set集合、HashSet