Struts2之Action处理多个方法总结

    在我们Struts2的请求中,一般都是前台提交请求到Action接收,但是以前的提交方式基本上都是一个请求对应一个Action,虽然这样职能单一了,但是问题却出来了,就比如我要开发一个系统,业务功能非常的多,非常的复杂,就一个用户模块就至少有4个请求,增删改查,如果再加上按条件进行查询等等,不知道得需要多少请求,这么多的请求则会对应着这么多的Action,这样我们开发的系统不知道要有多少东西,更不利于维护。所以为了方便起见,我们采取措施将一个模块的请求放到一块,这样Action类也减少了,也方便便于维护。要将好几个请求放到一个Action中,有好3种方法,具体如下:
        首先编写公共UserAction,如下:
public class UserAction extends ActionSupport {
    private User user;
     //get、set方法省略...

    public String addUser() throws Exception { 
        System.out.println("UserAction.addUser");
        return SUCCESS;
    }
    public String modifyUser() throws Exception { 
        System.out.println("UserAction.modifyUser");
        return SUCCESS;
    }
public String delUser() throws Exception { 
        System.out.println("UserAction.delUser");
        return SUCCESS;
    }
}
第一种:在配置文件(struts.xml)中配置相同的Action类,但是需要使用方法进行区分,具体如下:
   <action name="" class="com.tgb.UserAction" method="addUser()">
       <result name="success">/success.jsp</result>
   </action>
   <action name="" class="com.tgb.UserAction" method="modifyUser()">
       <result name="success">/success.jsp</result>
   </action>
   <action name="" class="com.tgb.UserAction" method="delUser()">
       <result name="success">/success.jsp</result>
   </action>

第二种: 一个Action处理多个请求,但得需要提交请求的时候带上方法名,例如:user/userManager!addUser。具体如下:
     1、配置文件中不用变动,照常如下:
   <action name="user" class="com.tgb.UserAction" >
       <result name="success">/success.jsp</result>
        <result name="success">/error.jsp</result>
   </action> 
    2、页面提交的时候,其URL地址需要变动一下,如:/user!addUser.action

第三种:需要参数配置,具体如下:
        1、页面提交地址需要改动:
                function addUser(){
            var myForm=document.forms[0];
            myForm.action="user/addUser";
            myForm.submit();
        }  
        2、配置文件中则需要配置接收参数的形式,如下:
        <action name="*User" class="com.tgb.UserAction" method="{1}User()">
       <result name="success">/success.jsp</result>
        <result name="success">/error.jsp</result>
   </action>
   
    总结:Struts2提交方式无非就这几种,只要熟知一下,看看知道有这几种形式,等用的时候直接找就好了,俗话说不怕不知道,就怕不知道。
发布了159 篇原创文章 · 获赞 243 · 访问量 20万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章