1

我有使用专有框架的遗留应用程序,它或多或少类似于 struts 1.2。现在我们已经开始使用 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 动作?

4

2 回答 2

1

您可以根据结果类型简单地将控件转发到相应的页面,例如SUCCESS。您可以使用结果类型一次执行两个不同的操作。

它看起来像这样:

使用 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>
于 2013-03-02T09:07:15.293 回答
0

在 struts2 中,默认结果类型被配置为 'dispatcher'。它“转发”请求。尝试设置 type="dispatcher"。检查您的 struts 配置是否正确配置了“调度程序”结果类型。它应该如下所示。

<result-types>
   <result-type name="dispatcher" default="true"
                class="org.apache.struts2.dispatcher.ServletDispatcherResult" />
</result-types>
于 2013-03-02T08:26:12.747 回答