表面的には、少し奇妙な質問です!しかし、私はWebフローと従来のSpringMVCコントローラーの両方を使用するWebアプリを作成しています。
Webフロービューの1つから、クライアントからSpringコントローラーへのhttpリクエスト(ajax)が作成されます。これが最初にコーディングされたときは、Webフローへの論理的な接続はあまりありませんでしたが、今では状況が進み、コントローラーは、要求がどの画面(ビューステート)から来たかを知ることで実際に行うことができます。
私のコントローラーメソッドの署名は次のようになります。
@RequestMapping(value="/AjaxStuff", method=RequestMethod.POST)
public String ajaxStuff(@ModelAttribute("quote") QB2MotorQuote p_quote, BindingResult p_bindingResult,
HttpServletRequest p_req, Model p_model, DefaultMessageContext p_messages) {
Webflowアクションクラスのいくつかから、RequestContextオブジェクトから現在の状態を取得できることがわかっています。
public Event checkDeclines(RequestContext p_ctx) throws Exception {
// get the current state
StateDefinition state = p_ctx.getCurrentState();
私はSpringがメソッドシグネチャでパラメータを指定するだけで自動的にパラメータを注入できる「voodoo」を本当に理解したことはありません(確かにそれは知っていることだけを注入できますか??)。コントローラメソッドのメソッドシグネチャを変更してRequestContextに注入しようとしましたが(注入されることを期待して無駄に)、そうではありません。RequestContextがインターフェースであると文句を言います。
だから、誰かが私のコントローラーに現在のウェブフローの状態を知らせる方法を知っていますか?コントローラーのメソッドシグネチャに何かを挿入するか、おそらくhttpリクエスト(またはリクエストから取得できるセッション)から取得できます)。
これに関するどんな助けも非常にありがたいです。