0

現在、アプリケーション ロジックはリクエスト パラメータを使用してロジックを実行しています。私の新しい要件では、要求パラメーターとして db キー (db には値があります) のみを持つ要求を取得することもできます。データベースからデータを取得できますが、既存のロジック/フローが parametermap のデータを期待しているため、問題は機能しません。

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 Reference Guideを読むことをお勧めします

于 2013-08-26T17:50:00.200 に答える
0

フロー xml に次を追加します。

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

したがって、このビューステートに遷移すると、必要なリクエストパラメーターを使用して URL がサーバーにリダイレクトされます。しかし、これはWebにヒットし、次にサーバーに再びヒットします。リクエストをサーバー側のみにとどめたい

于 2013-09-05T08:22:12.687 に答える