Spring mvcアプリケーションで2つのコントローラ間でデータを共有しようとしています。コントローラAIにおいて@SessionAttributesを使用するためのベストプラクティス
は@SessionAttributesのクラスを注釈を付けた({「mymodel1」})とIはModelMapに追加最初のGET要求を受信する方法において:
model.addAttribute("mymodel1", MyModel1);
今読みたいですこのコントローラのコントローラB. からmyModel1私はPOSTリクエストをインターセプトし、すでにそのパラメータの異なるモデルを持って、次の方法があります。この時点まで
public String processSubmit(@ModelAttribute("mymodel2") MyModel2 mymodel2, BindingResult result, SessionStatus status, HttpServletRequest httpRequest)
をすべてが正常に動作し、私はmymodel2を読み取ることができていますしかし、私が今、別の@ModelAttribute( "mymodel1")MyModel1 mymodel1をこのメソッドのシグネチャに追加したい場合は、コントローラAで設定していた値を読み取ることができるはずですが、最初のモデルもはや認識されない。
私の質問は、コントローラBからmymodel2をどのように読み取ることができますか?
私は、Springが良い古いHttpSession以外のセッション属性の格納と検索にもっと賢い手段を提供できると思ったでしょう。 @SessionAttributesでモデルBeanにタグを付けるとどうなるのですか? – Joly
@Joly実際には動作しないと思われます。 – Eugene