使用dispatchAction简化对action的请求操作

来源:互联网 发布:云计算待遇 编辑:程序博客网 时间:2024/05/16 09:24
struts-config:      
<action
             path="/hello"
             type="onlyfun.caterpillar.HelloAction">
             <forward
                 name="helloUser"
                 path="/WEB-INF/pages/hello.jsp"/>
</action>  
当我们提交一个do(hello.do)的请求的时候,就会呼叫我们所定义的action(onlyfun.caterpillar.HelloAction),直接进行请求转发,通过获取forward name转发到我们所定义的path中,每次都会执行一个forwardAction。
    请求转发的定义我们可以通过两种方法:
1、通过定义一个操作符(如opp),通过页面传递给action,如 http://localhost:8080/strutsapp/account.do?hello.do?opp=login&$其他参数$ ,然后在action中判断opp的操作:
String opp=getParameter("opp");
if(opp="login"){
<!--定义操作-->
return mapping.findForward("helloUser");
}
2、在struts中有自带的一个分发处理--dispatchAction:
在struts-config.xml中
 <action      path="/account"      type="onlyfun.caterpillar.AccountAction"      parameter="method"      name="userForm">     
<forward          name="greeting"          path="/WEB-INF/pages/greeting.jsp"/>  </action>
定义了一个参数parameter(在此定义为method
我们要实现登陆功能,在action中的定义函数Login():
public class AccountAction extends DispatchAction {    
    public ActionForward login(ActionMapping mapping,                              
    ActionForm form, HttpServletRequest request, HttpServletResponse response)          throws Exception {       
<!--login的操作-->
 ......    
}
调用login方法可以用
http://localhost:8080/strutsapp/account.do?method=login
总的来说,第二种方法更容易实现模块化管理
原创粉丝点击