java - SpringMVC中的@ModelAttribute注解是可有可无的吗?
天蓬老师
天蓬老师 2017-04-18 10:53:45
0
3
580

在学习SpringMVC中的使用Controller接受表单的值,
按照《Spring实战》中的代码,Controller如下:

    @RequestMapping(value = "/register", method = POST)
    public String processRegistration(Spitter spitter) {
        System.out.println(spitter.getUsername());
        spitterRepository.save(spitter);
        return "redirect:/spitter/" + spitter.getUsername();
    }

打印那行是我自己加的,用来验证表单的值是否绑定到了Spitter对象
而Spring官方的教程中在Spitter前面多了一个@ModelAttribute注解,
但是在这个例子里面产生的效果和不加似乎是一样的,都能够绑定表单信息到对象中,
所以想问下这个注解的功能?在这个例子中是不是即使不显示写也能有一样的功能?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(3)
洪涛

いいえ、@ModelAttribute には 2 つの機能があります。
1 つはデータを取り出すこと、つまりリクエストからデータを取り出してコントローラー メソッドのパラメーターにカプセル化することです。
もう 1 つは、このデータをjsp で使用できるようにモデル化します。ページ上で EL 式を使用してデータを取得し、表示します

いいねを押す +0
左手右手慢动作

@ModelAttribute アノテーションがパラメータに追加されている場合、@RequestMapping を実行する前に @ModelAttribute 内のキーが検索され、@ModelAttribute が存在せず、それが利用できない場合、または取得されない場合は、リフレクションを通じてスピッター オブジェクトがインスタンス化されます。リクエストを通じて取得した値をオブジェクトに設定します。結果は同じでも、プロセスが異なります。

いいねを押す +0
迷茫

独自の特徴はありますが、長年使用してきたので一度も使用していません @ModelAttribute

は無視してもよいと思います。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!