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萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章