Struts2學習筆記(三):Action名稱的搜尋順序和預設值

來源:互聯網
上載者:User

假設我們的訪問地址為:http://localhost:8080/struts2/test/helloworld,那麼改成 http://localhost:8080/structs2/test/sdf/sfs/aaa/helloworld 還能訪問到嗎?

答案是YES

很奇怪,為什麼呢?

讓我們來看一下Action名稱的搜尋順序

1.獲得請求路徑的URI,例如url是:http://server/struts2/path1/path2/path3/test.action

 

2.首先尋找namespace為/path1/path2/path3的package,如果不存在這個package則執行步驟3;如果存在這個package,則在這個package中尋找名字為test的action,當在該package下尋找不到action 時就會直接跑到預設namaspace的package裡面去尋找action(預設的命名空間為空白字串“” ) ,如果在預設namaspace的package裡面還尋找不到該action,頁面提示找不到action

 

3.尋找namespace為/path1/path2的package,如果不存在這個package,則轉至步驟4;如果存在這個package,則在這個package中尋找名字為test的action,當在該package中尋找不到action 時就會直接跑到預設namaspace的package裡面去找名字為test的action ,在預設namaspace的package裡面還尋找不到該action,頁面提示找不到action

 

4.尋找namespace為/path1的package,如果不存在這個package則執行步驟5;如果存在這個package,則在這個package中尋找名字為test的action,當在該package中尋找不到action 時就會直接跑到預設namaspace的package裡面去找名字為test的action ,在預設namaspace的package裡面還尋找不到該action,頁面提示找不到action

 

5.尋找namespace為/的package,如果存在這個package,則在這個package中尋找名字為test的action,當在package中尋找不到action或者不存在這個package時,都會去預設namaspace的package裡面尋找action,如果還是找不到,頁面提示找不到action。

 

 

 我們再來看下action中的各項預設值:
        <action name="helloworld" class="com.jim.action.HelloWorldAction" method="execute" >
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>

1>如果沒有為action指定class,預設是ActionSupport。

2>如果沒有為action指定method,預設執行action中的execute() 方法。

3>如果沒有指定result的name屬性,預設值為success。

 所以如果我們寫成:
        <action name="test">
<result>/WEB-INF/page/hello.jsp</result>
</action>

當我們訪問test這個action時會自動跳轉到下面那個jsp頁面

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.