DispatchAction 在struts里的应用

DispatchAction 的出现就是为了解决Struts中Action过多的问题,有些时候我们的Action实现的功能相似,但是过多的Action不仅让代码变得臃肿,也会让编码的时候分心。
这个DispathAction继承自Action,它在struts-config.xml中比Action多了一个参数parameter参数,这个参数的设定是自定义的一个String类型,这个参数是用来我们在跳转的时候指定的关键字。
举个例子:
我们有一个用户类User,我们想如果没有DispathAction而使用Action的话,需要AddUserAction、ModifyUserAction、DeleteUserAction三个Action来管理这个用户,而使用DispathAction,我们可以在parameter里设置参数为“operation”,然后在UserAction里面写三个函数:addUser()、modifyUser()、deleteUser(),当我们想转到某个具体的函数时我们可以这样使用: /ProjectName/UserAction.do?operation=addUser    就可以转向AddUser函数,这样不仅让代码更简洁,更重要的是,我们更好的提现的Action的OO特性,这对于开发的简化和理解都有很大帮助。
贴上配置的代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EN" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
  <form-beans >
    <form-bean name="userForm" type="com.sh.web.struts.form.UserForm" />

  </form-beans>

  <global-exceptions />
  <!-- 这里指的是全局跳转,任何一个Action都可以挑战的页面,适合通用界面的配置 -->
  <global-forwards />
  <action-mappings >
<!-- parameter参数用于将来区分用户不同的请求 --> 
    <action
      attribute="userForm"
      input="/WEB-INF/Login.jsp"
      name="userForm"
      parameter="flag"
      path="/loginAndLogout"
      scope="request"
      type="com.sh.web.struts.action.LoginAndLogoutAction"
      validate="false"
      cancellable="true">
      <!-- 这里是普通跳转,只能由该Action跳,不能由其他的跳转 -->
      <forward name="loginSuccess" path="/WEB-INF/loginSuccess.jsp" />
    </action>


  </action-mappings>

  <message-resources parameter="com.sh.struts.ApplicationResources" />
</struts-config>

在UserAction里面的代码
//用于添加用户
public ActionForward addUser(ActionMapping mapping, ActionForm form,
 HttpServletRequest request, HttpServletResponse response) {
 UserForm userForm = (UserForm) form;// TODO Auto-generated method stub
 return null;
 }
//用于删除用户
​public ActionForward deleteUser(ActionMapping mapping, ActionForm form,
 HttpServletRequest request, HttpServletResponse response) {
 UserForm userForm = (UserForm) form;// TODO Auto-generated method stub
 return null;
 }​
//用于修改用户
public ActionForward ModifyUser(ActionMapping mapping, ActionForm form,
 HttpServletRequest request, HttpServletResponse response) {
 UserForm userForm = (UserForm) form;// TODO Auto-generated method stub
 return null;
 }​



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值