Struts中DispatchAction示例

Posted on 2007-12-08 10:49 探佚 阅读(338) 评论(0)  编辑  收藏 所属分类: Java EE技术

回顾 org.apache.struts.action.Action 类

<action
   
name="accountForm"
   path
="/account"
   scope
="request"
   type
="com.action.AccountAction">
   
<forward name="ok" path="/ok.jsp" redirect="true"/>
   
<forward name="error" path="/error.jsp"/>
</action>

com.action.AccountAction中的execute()方法会来处理来自account.do的请求

问题:
在JSP中,充当控制层的Servlet我们一般只用来处理一个表单请求,为了能处理不同请求,
我们可以通过判断提交按钮submit来判断不同请求,当然还可以通过重写URL、Hidden等来实现。
而现在我们的Action该怎样来完成这样的要求呢?
不用担心,DispatchAction替我们做好了。

使用步骤:

一、创建Action继承自DispatchAction类,
    DispatchAction类是一个抽象类,它实现了父类(Action)的execute()方法.

二、编写自己的方法,拿增删改查举例
    方法的声明,必须和exectue()方法声明一样,只是方法名不同。 

 public ActionForward add(ActionMapping mapping,

                             ActionForm form,

                             HttpServletRequest request, 
                             HttpServletResponse response) 
throws Exception {
        
return mapping.findForward("ok"); 
    }
    
public ActionForward edit(ActionMapping mapping,

                             ActionForm form,

                             HttpServletRequest request, 
                             HttpServletResponse response) 
throws Exception {
        
return mapping.findForward("ok"); 
    }

   
public ActionForward del(ActionMapping mapping,

                             ActionForm form,

                             HttpServletRequest request, 
                             HttpServletResponse response) 
throws Exception {
        
return mapping.findForward("ok"); 
    }

三、struts-config.xml中配置

   <action
      
name="accountForm"
      parameter
="operator"
      path
="/account"
      scope
="request"
      type
="com.action.AccountAction">
      
<forward name="ok" path="/ok.jsp" redirect="true"/>
      
<forward name="error" path="/error.jsp"/>
   
</action>


   和普通Action的唯一区别就是添加一个属性parameter

   其值用来保存传递给Action的不同请求。
   operator=add时:DispatchAction会自动调用add()方法来处理请求,edit、del同理。

 

四、最后要做的和JSP中很像,在请求DispatchAction时把Parameter传递过去,
        
         其途径无非是上面
说到的Hidden,URL重写等手段.

 

 

 

 


只有注册用户登录后才能发表评论。


网站导航:
 

Copyright © 探佚