Struts2說說相對路徑

來源:互聯網
上載者:User
 

從剛開始接觸
Tomcat

開始,就被繁雜的相對路徑給弄暈了,儘管最後每次都能正確的匹配上,但是總覺得不是很順暢,一直試圖找出一條匹配的規則出來,但是每每總結出一條來的時候,總是又被新的“事實”給顛覆,讓人不勝煩惱,因此決定有一點寫一點。

通常相對路徑的寫法有兩種,一種就是以“
/

”開頭,一種就是不以“
/

”開頭,這兩種寫法有什麼區別呢,下面舉例闡述一下。

現在的
Web

環境是一個
Struts2

的應用,我的應用程式名是
Struts

,應用程式所在的目錄名也是
Struts

。這樣我的
url

基本是以
http://localhost/Struts


開頭的啦。現在做如下測試:

1

.在
Struts

目錄下面有一個檔案叫
sayHello.jsp

,它裡面的
form


action

的值是
HelloWorld.action

,那麼提交之後匹配的路徑是
http://localhost/Struts/HelloWorld.action



2

.如果
action

的值是
test/HelloWorld.action

,那麼提交之後匹配的路徑是
http://localhost/Struts/test/HelloWorld.action



3

.假設在
Struts

目錄下面有一個子目錄
add

,它裡面有一個檔案叫
sayHello.jsp

,它裡面的
form


action

的值是
HelloWorld.action

,那麼提交之後匹配的路徑是
http://localhost/Struts/add/HelloWorld.action



4

.在測試
3

下將
action

的值改為
test/HelloWorld.action

,那麼提交之後匹配的路徑是
http://localhost/Struts/add/test/HelloWorld.action



5

.在測試
3

下將
action

的值改為
/HelloWorld.action

,那麼提交之後匹配的路徑是
http://localhost/Struts/ HelloWorld.action



6

.在測試
3

下將
action

的值改為
/test/HelloWorld.action

,那麼提交之後匹配的路徑是
http://localhost/Struts/ test/HelloWorld.action



總結:在分頁檔中,所請求的相對路徑為
path

,那麼它的路徑匹配是從檔案當前所在的目錄開始的,假設分頁檔當前所在目錄為
curr

,那麼匹配後的完整路徑就是
http://localhost/Sturts/curr/path


;如果相對路徑為
/aa/bb/cc

,那麼匹配後的路徑就是
http://localhost/Sturts/path


。也就是說,
如果以“

/


”開頭,就從當前應用的根目錄開始匹配,如果不以“

/


”開頭就從當前檔案所在的目錄開始匹配

。這樣的話,如果檔案本來就在根目錄下面,那麼加“
/

”和不加“
/

”就沒啥區別了。


Struts2

還一個要匹配路徑的地方就是在處理完請求之後對頁面進行分發的時候,也就是
result

元素裡面的內容。測試記錄如下:

1


<result>/HelloWorld.jsp</result>

。匹配的路徑是
http://localhost/Struts/HelloWorld.jsp



2


<result>HelloWorld.jsp</result>

。這個時候就和調用這個
action

的路徑相關了。可以這樣進行匹配,首先得到請求這個
action


url

,然後去掉最後一個“
/

”後面的內容,再把
HelloWorld.jsp

接上去即可。例如,我們是通過
http://localhost/Struts/aa//bb/cc/HelloWorld.action


調用的
action

,那麼匹配出來的
url

就是
http://localhost/Struts/aa//bb/cc/HelloWorld.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.