0

目前我的应用程序逻辑正在使用请求参数来执行逻辑。在我的新要求中,我还可以获得一个只有 db 键(db 将具有值)作为请求参数的请求。我可以从数据库中获取数据,但问题是我现有的逻辑/流程将无法正常工作,因为它期望参数映射中的数据。

在 spring-mvc 中,我可以再次转发请求并将参数附加到请求

@Controller
public class TestController {
    @RequestMapping(value="/test")
    public String showTestPage() {
        return "forward:/test2?param1=foo&param2=bar";
    }
}

@Controller
public class TestController2 {
    @RequestMapping(value="/test2")
    public String showTestPage(HttpServletRequest request) {
        String param1 = request.getParameter("param1");
        String param2 = request.getParameter("param2");
        return "testPageView";
    }
}

但是在 spring-webflow 中,我不确定如何复制与状态而不是请求映射相同的行为。任何人都可以让我知道添加参数后是否有办法在 spring-webflow 中转发。

4

2 回答 2

1

更新:

对不起,我把你的问题弄错了。

在 WebFlow 中,您可以view-states转换到下一个状态。如果要传输参数,可以这样做:

流.xml:

<view-state id="test" view="test.jsp>
    <transition on="toTest2" to="test2" />
</view-state>

<view-state id="test2" view="test2.jsp>
    <on-render>
        <evaluate expression="test2Delegate.doSomething(requestParameters.param2, requestParameters.param2)" 
    </on-render>
</view-state>

测试.jsp:

<a href="${flowExecutionUrl}&_eventId=toTest2&param1=foo&param2=bar" />

爪哇:

@Component
public class Test2Delegate {

    public void doSomething(String param1, String param2) {

        //doSomething
    }
}

我建议阅读Spring Web Flow 参考指南

于 2013-08-26T17:50:00.200 回答
0

在流 xml 中添加:

<view-state id="viewname" view="flowRedirect:appName?#{flowScope.jobId}

因此,当您转换到此视图状态时,它将使用您想要的请求参数将 url 重定向回服务器。但这将访问网络,然后再次访问服务器,我希望请求仅保留在服务器端

于 2013-09-05T08:22:12.687 回答