幽灵学院 - 菜鸟起航从这里开始!

幽灵学院 - 中国最权威的网络安全门户网站!

当前位置: > 编程 > Web开发 > JSP >

struts1的基本知识点—DispachAction

DispachAction是动态的指定Action。也就是说在view层的不同的请求和url参数被ActionServlet所截获, 并在struts-config.xml中根据请求得到参数不同来指定(调用)Action中不同的方法,根据方法的返回值来跳转相应的页面。 这样可以很好的解决Action膨胀的问

DispachAction是动态的指定Action。也就是说在view层的不同的请求和url参数被ActionServlet所截获,

并在struts-config.xml中根据请求得到参数不同来指定(调用)Action中不同的方法,根据方法的返回值来跳转相应的页面。

    这样可以很好的解决Action膨胀的问题。以前我们继承struts中的Action只处理一种请求,也就是说不同的请求会有相应的Action类,这样Action类就会越来越多,就会照成Action膨胀。用DispachAction会根据请求的不同来指定调用哪个方法,这样可以有效的解决Action膨胀的问题。

 


如何使用DispachAction:

1.写一个UserAction继承DispachAction

写一个addUser方法添加用户


[java]
//添加User  
    public ActionForward addUser(ActionMapping mapping, ActionForm arg1, 
        HttpServletRequest arg2, HttpServletResponse arg3) throws Exception { 
     
        new UserService().saveUser(new User()); 
     
        return mapping.findForward("ok"); 
    } 

 //添加User
  public ActionForward addUser(ActionMapping mapping, ActionForm arg1,
   HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
  
   new UserService().saveUser(new User());
  
   return mapping.findForward("ok");
  }
写一个deleteUser方法删除用户

 

[java]
//删除User  
    public ActionForward deleteUser(ActionMapping mapping, ActionForm arg1, 
        HttpServletRequest arg2, HttpServletResponse arg3) throws Exception { 
     
    return mapping.findForward("delok"); 

 //删除User
  public ActionForward deleteUser(ActionMapping mapping, ActionForm arg1,
   HttpServletRequest arg2, HttpServletResponse arg3) throws Exception {
  
  return mapping.findForward("delok");
 }
2.在页面上


[html]
<SPAN style="FONT-SIZE: 18px"><form action="User.do?command=addUser" method="post"> 
        username:<input type="text" name="username"><br> 
        password:<input type="password" name="password"> 
        <input type="submit" value="提交"> 
    </form> 
     
    <a  href="User.do?id=1&command=deleteUser">删除id为1的用户</a></SPAN> 

  <form action="User.do?command=addUser" method="post">
     username:<input type="text" name="username"><br>
     password:<input type="password" name="password">
     <input type="submit" value="提交">
    </form>
    
    <a  href="User.do?id=1&command=deleteUser">删除id为1的用户</a>


3.在struts-config.xml配置


[html]
action-mappings> 
        <action path="/User"  
                parameter="command" 
                type="com.jxau.action.UserAction"> 
            <forward name="ok" path="/add_ok."></forward> 
            <forward name="delok" path="/del_ok.jsp"></forward> 
        </action> 
    </action-mappings> 

<action-mappings>
  <action path="/User"
    parameter="command"
    type="com.jxau.action.UserAction">
   <forward name="ok" path="/add_ok.jsp"></forward>
   <forward name="delok" path="/del_ok.jsp"></forward>
  </action>
 </action-mappings>


总结:用DispatchAction可以动态的控制Action,根据一个模板一个Action的原则来管理一个业务逻辑。有效的防止Action膨胀的问题

 

 

 


 

(责任编辑:幽灵学院)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片
栏目列表
推荐内容
1700055555@qq.com 工作日:9:00-21:00
周 六:9:00-18:00
  扫一扫关注幽灵学院