3

flowExecutionKeyからを取得する必要があるフォーム アクション クラスにいくつかのコードがありますRequestContext。これを行う方法に関するドキュメントが見つからないようです。私のクラスは次のようになります。

public class MyFormAction extends FormAction
{
    public Event doStuff(RequestContext context)
    {
        String flowExecutionKey = ...??
        ...
    }
}

flowExecutionKey を取得する必要がないことはわかっていますが、これを必要とするレガシー コードを扱っています。このメソッドは、ビュー ステートのエントリ アクションとして呼び出されています。試してみcontext.getFlowExecutionContext().getKey()ましたが、null が返されます。context.getFlowExecutionUrl()null も返します。これを行う方法はありますか?

アップデート

私はこれをもう少しいじっていましたが、代わりに でcontext.getFlowExecutionContext().getKey()メソッドが呼び出されたときに flowExecutionKey を取得します。また、後のビューステートで機能することも注目に値します。動作していないビュー ステートは、フローの最初のビュー ステートです。最初のビューステートでflowExecutionKey を取得できない理由はありますか?<on-render><on-entry><on-entry><on-entry>

4

1 に答える 1

4

コールバックは、<on-entry>サーバーへの最初のPOST中に実行されます。これには、のようなURLがありますhttp://server/myflow。それが完了すると、webflowはへのリダイレクトを発行しhttp://server/myflow?execution=e1s1ます。実行されるのはこの呼び出し中<on-render>です。

したがって、イニシャルでキーを取得できない理由は、<on-renderキーがまだ割り当てられていないためです。そして、後で表示さ<on-render>れるキーは、実際にはのビューのキーです。

こちらもRequestContext.getFlowExecutionUrl()ご覧ください。現在のリクエストのURLがわかります。それは少し光を当てる必要があります。

于 2012-08-12T00:01:32.823 に答える