本文主要是介绍struts的Dispatch形式,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在上篇文章中简单的描述了struts的应用,但是其存在一个小小的问题,就是每一个请求,都会有一个与之对应的Action。比如说查询用户,就会有一个查询用户的Action;以此类推,增加也会有一个,这样就会使得Action类越来越多,不利于维护。为此出现了另外一种形式,将每一个模块的需求(不如用户的增删改查)封装到一个Action里面,而那些需求则变成这个Action的方法。访问的时候只需要传递一个参数来区分要访问的是哪个方法就可以了。具体如下: 1、UserAction对象:
<span style="font-size:18px;">/*** UserAction继承DispatchAction;而DispatchAction则继承Action*/
public class UserAction extends DispatchAction {/*** 缺省方法,当访问时不加参数,则会访问此方法*/@Overrideprotected 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、客户端访问:
4、总结:通过上面的方法,很大程度上减少了Action的数量, 并且把相关的业务方法集合在一起使得维护起来更容易。<a href="user/list.do?command=list" title="请点击访问用户管理系统">用户管理</a><br><br><a href="user/list.do" title="请点击访问用户管理系统">用户管理</a><br>
这篇关于struts的Dispatch形式的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!