将请求转发给struts2动作的非struts 2动作?

时间:2013-03-01 08:49:50

标签: java model-view-controller struts2

我有遗留应用程序正在使用或多或少像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动作 动作?

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)

struts2中的

默认结果类型配置为“dispatcher”。 “转发”请求。 尝试设置type =“dispatcher”。检查struts配置是否正确配置了“dispatcher”结果类型。它应该看起来像下面的东西。

<result-types>
   <result-type name="dispatcher" default="true"
                class="org.apache.struts2.dispatcher.ServletDispatcherResult" />
</result-types>