Struts2——namespace、action、以及path問題


  1. 簡單的介紹下Struts2中的幾個簡單的問題(namespace、action、以及path問題)
  2. namespace(命名空間)

    Namespace決定了action的訪問路徑,默認為“”,意味着可以訪問所有目錄下的/ass/sss/ss/index;囊括了所有package處理不了的action

     

    namespace可以寫成/,或是/xx/xx/yy,對應action訪問路徑為/index.action/xx/index.action或是/xx/yy/index.action

     

    Packagenamespace一般都是模塊名命名(package為了區分相同名字的action)

     

     <constant name="struts.devMode" value="true" />

    <!-- 聲明包 -->

    <package name = "user" extends = "struts-default" namespace=”/user”>

    <!-- 定義action -->

    <action name="login01" class="ab.LoginAction01">

    <result name="success">/success.jsp</result>

    </action>

    </package>

     

  3. action的使用:(具體的action的實現可以是一個普通的java類,最常使用的是從ActionSupport繼承,好處就是直接使用Struts2封裝好的方法);

      1. Class是實現actionjava類的包名.類名;

        <action name="login01" class="ab.LoginAction01">

         

      2. public class LoginAction01 extends ActionSupport {

          Public Sting execute(){

        Return SUCCESS;

        }

        }

        xwork中的源碼ActionSupport

      3. 過程圖:

         

         

        3.path問題

        Index.jsp中:<a href=path/path.action”></a>

        所以namespace=”/path”

        注意:Struts2中的路徑問題是根據action的路徑而不是jsp路徑來確定,所以盡量不要使用相對路徑。

        解決方法:就是統一使用絕對路徑 建議不要用redirect方法

         指定basePath  默認加上項目的跟路徑

         

        <%

        String path=request.getContextPath();

        String basePath=request.getScheme()+"://"+request.getServerNam()+":"+request.getServerPort()+path+"/";

        %>

         

        <base href="<%=basePath %>">   在返回首頁的時候


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM