3

私の Spring MVC アプリケーションには、2 つのページがあります。
10 個の変数を持つオブジェクトがあります。最初のページでは、上記のオブジェクトの 9 つの変数を設定しています (最初のページには 9 つのフィールドがあります)。このオブジェクトをセッションに設定し、コントローラーにモデル属性を設定しました。この同じオブジェクトを次のページにも渡す必要があります。2 番目のページでは、同じオブジェクトに 10 番目の変数を設定する必要があります (2 番目のページには 10 番目のフィールドが 1 つしかありません)。(10 番目の変数を設定するために 2 番目のページが必要な理由 - 2 番目のページでは、最初のページのエントリに基づいてドロップダウンを入力します)

2 番目のページでフォームを送信すると、10 個の変数を含む同じオブジェクトを送信する必要があります。(会社のポリシーにより、コードを貼り付けることができませんでした) 誰でもこれを修正するのを手伝ってくれませんか?

4

4 に答える 4

1

両方のメソッドが同じコントローラーにあることに注意してください。次のようなことをする必要があります:

@Controller
@SessionAttributes("myObject")
public class SessionAttributesController {

    // Save session attribute in model. 
    @RequestMapping(value = "/page1.html", method = RequestMethod.GET)
    public String page1( @ModelAttribute MyClass myObject, ModelMap model ) {
        model.addtAttribute("myObject", myObject);
        return "page1.html";
    }

    // Now you model is having myObject, so it has to be used in jsp. You can add ModelMap parameter to this method and check what contains model in debug mode.   
    @RequestMapping(value = "/page2.html", method = RequestMethod.GET)
    public String page(ModelMap model) {
          model.get("myObject").setAttr10(value);   
          return "page2.html";
    }

}
于 2013-10-30T08:29:58.893 に答える
0

これらのウィザード タイプの画面があると思われる場合は、spring-webflow の使用を検討する必要があります。Spring-Webflow の DSL は、より複雑なシナリオが発生した場合の管理に役立ちます。

ここから Spring-Webflow の基本的な紹介を得ることができます。

于 2013-11-18T16:42:24.257 に答える
0

他のすべてのオプション (つまり、モデル属性など) を検討した場合は、Spring-Web-Flow を使用してこれを行うことをお勧めします (あなたが話している 2 つのページが関連している場合)。この方法で、データが確実に転送されます。あるページから別のページへ。

参照: http://docs.spring.io/spring-webflow/docs/1.0.3/reference/practical.html

これがうまくいくことを願っています。

よろしく Ashok Gudise

于 2013-11-18T18:40:30.557 に答える