2010-08-02 52 views
2

我有view.jsp和edit.jsp頁面。兩者均調用一個操作的load()方法,該方法返回SUCCESS。有沒有辦法轉發到struts.xml中的頁面請求,而不是這個?struts2轉發到不同的頁面

<action name="call_1" method="load" class="package.action.List"> 
    <result name="success" type="json">/WEB-INF/view.jsp</result> 
</action> 
<action name="call_2" method="load" class="package.action.List"> 
    <result name="success" type="json">/WEB-INF/edit.jsp</result> 
</action> 

另外,我的動作建立散列映射爲{ 「3」: 「亞當」, 「1」: 「布賴恩」, 「2」: 「英式」, 「4」: 「DEN」},這是用於填充下拉菜單。它基於值進行排序,但由於某種原因,json仍按以下順序顯示它。 brian-> brit-> adam-> den。當鍵是字符串時,爲什麼仍然基於鍵進行排序。

回答

3

是的,您可以使用wildcard mappings將兩個<action>定義合併爲一個。

<action name="list-*" method="load" class="package.action.List"> 
    <result name="success" type="json">/WEB-INF/{1}.jsp</result> 
</action> 

以上將採取動作請求URL中連字符後面的部分並使用它來設置結果位置。然後,您可以用這兩種網址叫它:

http://yourapp.com/list-view.action 
http://yourapp.com/list-edit.action 

爲排列您的JSON對象,你可以對如何創建一個比較詳細資料讀取this answer並得到它想要的順序。

+0

非常感謝救星! – Nish 2010-08-02 20:29:21

+0

我現在得到如何排序JSON,如果它是對象,但我不是。這裏是我從行動中得到的結果: {「studentMap」:{3「:」adam「,」1「:」brian「,」2「:」brit「,」4「:」den「所以你看,我沒有領域來排序。 – Nish 2010-08-02 21:02:05