2013-07-10 94 views
1

這可能是一個無用的或蹩腳的問題,但請給我解釋一下。Struts2 URL中「.action」擴展意義的解釋

在struts2中,當我們將一個動作分配給一個表單按鈕並單擊該按鈕時,該動作被調用。現在,將顯示操作文件的結果時,在瀏覽器的URL顯示

localhost:8080/HelloWorld/ClassName.action 

有時默認.action部分不顯示。但兩者都是一樣的。

我需要向某人解釋這個.action的重要性。爲什麼這個擴展名顯示在URL中,並且有一些特定的事情可以啓用和禁用Struts2 URL中的.action

+1

http://struts.apache.org/release/2.1.x/docs/strutsproperties.html默認情況下,框架將提供.action,儘管您可以修改或刪除它。 –

回答

1

如果使用默認動作映射器從請求url獲取映射,它將使用動作擴展來確定動作名稱部分。動作擴展可與恆定被配置在struts.xml(或struts.properties

<constant name="struts.action.extension" value="action,,"/> 

即默認。在某些情況下,如果您需要在相同路徑下訪問靜態資源而不是動作,則可以使用「.action」擴展來區分動作與靜態資源。如果你沒有或沒有使用這些資源,那麼你可以通過從上面的配置中刪除action來輕鬆抑制它。

+2

使用''會爲您提供沒有.action的URL,並且仍然不會干擾靜態資源,如CSS,JavaScript和圖像。 –

+0

好的......所以這個概念作爲一個整體來說就是它只是struts2的一個指示:「夥計,無論你在屏幕上看什麼,都是使用ACTION類生成的......」沒有別的。 而且我們甚至可以將其配置爲顯示不同的指示或根本不顯示。 好人。感謝很多幫助。 –

+1

@KeyurGolani如果它使用'/ *',那麼它取決於使用struts2過濾器時使用的過濾器映射,然後是,但它也能夠配置處理靜態資源。 –