struts2 去掉或修改后缀名
生活随笔
收集整理的這篇文章主要介紹了
struts2 去掉或修改后缀名
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
http://blog.sina.com.cn/s/blog_4e345ce70101nejg.html
我不想說如何配置 Struts2 處理的 url 后綴名,因?yàn)殛P(guān)于這方面的文章太多了,今天我說一說如何配置 Struts2 不處理的 url 后綴名。
在 struts.xml 或 struts.properties 配置文件中配置 struts.action.extension 項(xiàng)可以設(shè)置 Struts2 處理的 url 請求后綴名,
如:struts.action.extension = action, do
這樣 url 是這樣:http://www.mxjava.com/index.do
很多網(wǎng)站的 url 是沒有后綴的,比如利用 ror 開發(fā)的網(wǎng)站的 url 類似這樣:http://www.mxjava.com/index 。這樣的 url 對搜索引擎更加友好。其實(shí)利用上面講的 struts.action.extension 也可以讓 Struts2 的 url 變成這樣。很簡單,只要將 struts.action.extension 設(shè)置為空即可。
如:struts.action.extension =
此時 url 是這樣:http://www.mxjava.com/index
問題來了,服務(wù)器的某個目錄下有個 html 文件是希望被訪問的,這時在地址欄輸入該 html 文件的地址 http://www.mxjava.com/10000.html 后畫面上顯示的并不是該 html 的內(nèi)容,而的系統(tǒng)出錯信息:
Struts has detected an unhandled exception:
# Messages: There is no Action mapped for namespace / and action name 10000.html.
Struts2 為我們提供了處理的請求后綴配置,但并沒有提供不處理的請求后綴配置,難道要為 struts.action.extension 追加 html 的配置,并為每個 html 專門建立一個 Action ?如果網(wǎng)站需要全站靜態(tài)化,又當(dāng)如何處理??
其實(shí)并不用這么麻煩,關(guān)鍵還在 struts.action.extension 上。只要將配置改為:
struts.action.extension = ,
在等號后面加個逗號即可。
原理是這樣的:Struts2 在取得 struts.action.extension 配置后,如果為空,就會對所有請求進(jìn)行攔截(攔截后只對后綴為空的請求做處理,其它請求出錯)。當(dāng)為不空字符串時,先用逗號分割字符串,然后只對配置的后 綴進(jìn)行攔截。當(dāng)配置僅為一個逗號時,分割后為空,所以只對后綴為空的請求進(jìn)行攔截。這時若請求后綴為 .do 或 .action 等的場合,將跳轉(zhuǎn)到 404 頁面而不是出錯信息頁面。
我不想說如何配置 Struts2 處理的 url 后綴名,因?yàn)殛P(guān)于這方面的文章太多了,今天我說一說如何配置 Struts2 不處理的 url 后綴名。
在 struts.xml 或 struts.properties 配置文件中配置 struts.action.extension 項(xiàng)可以設(shè)置 Struts2 處理的 url 請求后綴名,
如:struts.action.extension = action, do
這樣 url 是這樣:http://www.mxjava.com/index.do
很多網(wǎng)站的 url 是沒有后綴的,比如利用 ror 開發(fā)的網(wǎng)站的 url 類似這樣:http://www.mxjava.com/index 。這樣的 url 對搜索引擎更加友好。其實(shí)利用上面講的 struts.action.extension 也可以讓 Struts2 的 url 變成這樣。很簡單,只要將 struts.action.extension 設(shè)置為空即可。
如:struts.action.extension =
此時 url 是這樣:http://www.mxjava.com/index
問題來了,服務(wù)器的某個目錄下有個 html 文件是希望被訪問的,這時在地址欄輸入該 html 文件的地址 http://www.mxjava.com/10000.html 后畫面上顯示的并不是該 html 的內(nèi)容,而的系統(tǒng)出錯信息:
Struts has detected an unhandled exception:
# Messages: There is no Action mapped for namespace / and action name 10000.html.
Struts2 為我們提供了處理的請求后綴配置,但并沒有提供不處理的請求后綴配置,難道要為 struts.action.extension 追加 html 的配置,并為每個 html 專門建立一個 Action ?如果網(wǎng)站需要全站靜態(tài)化,又當(dāng)如何處理??
其實(shí)并不用這么麻煩,關(guān)鍵還在 struts.action.extension 上。只要將配置改為:
struts.action.extension = ,
在等號后面加個逗號即可。
原理是這樣的:Struts2 在取得 struts.action.extension 配置后,如果為空,就會對所有請求進(jìn)行攔截(攔截后只對后綴為空的請求做處理,其它請求出錯)。當(dāng)為不空字符串時,先用逗號分割字符串,然后只對配置的后 綴進(jìn)行攔截。當(dāng)配置僅為一個逗號時,分割后為空,所以只對后綴為空的請求進(jìn)行攔截。這時若請求后綴為 .do 或 .action 等的場合,將跳轉(zhuǎn)到 404 頁面而不是出錯信息頁面。
總結(jié)
以上是生活随笔為你收集整理的struts2 去掉或修改后缀名的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse更改默认字符集 设置UTF
- 下一篇: struts2几种result type