我有遗留应用程序正在使用或多或少像struts 1.2的proprieatary框架。现在我们已经开始了 使用struts 2.在很多地方,我将html表单提交给jsp的旧操作。我想要的是第一个请求 到我的新struts 2动作然后我从那里将请求转发到我的遗留行动,以便我在目标遗留行动中获得所有源请求参数。我知道有结果类型 重定向(如下所述)但不会将源请求参数转发给遗留操作。
@Result(name = "displayCustomer",
location = "legacyAction.do", type = "redirect")
@Action("display-customer!displayCustomer")
public String displayCustomer() {
return "displayCustomer";
}
我没有找到类似于重定向的任何类型“转发”。我不知道如何将请求从struts 2转发到非struts 2动作 动作?
答案 0 :(得分:1)
您可以根据结果类型将控件转发到相应的页面,例如成功。您可以使用链结果类型一次执行两个不同的操作。
看起来像这样:
使用XML配置
<action class="your_action_path" name="your_action_name" method="your_target_method">
<result type="chain">your_legacy_action</result>
</action>
//Then your_legacy_action_mapping here
<action class="your_legacy_action_path" name="your_legacy_action_name" method="your_target_method">
<result>your_target_success_page</result>
</action>
答案 1 :(得分:0)
默认结果类型配置为“dispatcher”。 “转发”请求。 尝试设置type =“dispatcher”。检查struts配置是否正确配置了“dispatcher”结果类型。它应该看起来像下面的东西。
<result-types>
<result-type name="dispatcher" default="true"
class="org.apache.struts2.dispatcher.ServletDispatcherResult" />
</result-types>