struts2转发到不同的页面

时间:2010-08-02 18:10:58

标签: struts2

我有view.jsp和edit.jsp页面。两者都调用一个动作的load()方法,它返回SUCCESS。有没有办法转发到来自struts.xml的页面请求,而不是这个?

<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>

此外,我的操作将hashmap构建为{“3”:“adam”,“1”:“brian”,“2”:“brit”,“4”:“den”},用于填充a下拉式菜单。它是根据值排序的,但由于某些原因,json仍按以下顺序显示它。 brian-&GT; brit-&GT; ADAM-&GT;巢穴。当键是字符串时,为什么还要根据键进行排序。

1 个答案:

答案 0 :(得分: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以获取有关如何创建比较器并按照您想要的顺序获取它的更多详细信息。