2015-06-09 59 views
1

使用破折號我有以下作用:在Struts 2的動作名稱

<action name="#dash_creds" class="AccountDashboardActionBean"> 
    <result name="success" type="stream"> 
     <param name="contentType">application/json</param> 
     <param name="inputName">jsonInputStream</param> 
    </result> 
</action> 

我想Struts來接受我的網址的#符號或忽略它,現在它不叫我的行動。

+0

怎麼樣'namespace'反正我認爲當你想使用你需要考慮其編碼爲特殊字符suchkind url ..你可以在這裏發佈你的'jsp'或者動作調用者進程嗎.. – Babel

+0

你爲什麼要在URL中使用特殊字符? –

回答

0

特殊字符#不允許作爲操作名稱的一部分。如果您想使用操作名稱來構建網址,則可以使用url標記。

<s:url var="url" action="" anchor="dash_creds"/> 
1

散列符號用於標識URL的「片段」部分;網址中第一個#之後的所有內容都被視爲片段的一部分,並且不會發送到服務器。

這意味着一個帶有#的動作名稱將永遠不會到達;如果從瀏覽器中調用此:

http://domain.name/namespace/#dash_creds

Struts應用將看到:

http://domain.name/namespace/

出於同樣的原因,我不認爲有辦法讓Struts的「忽略它」。您的操作名稱不應包含散列。

參見以下鏈接: