Rumah  >  Soal Jawab  >  teks badan

java - SpringMVC中的@ModelAttribute注解是可有可无的吗?

在学习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注解,
但是在这个例子里面产生的效果和不加似乎是一样的,都能够绑定表单信息到对象中,
所以想问下这个注解的功能?在这个例子中是不是即使不显示写也能有一样的功能?

天蓬老师天蓬老师2743 hari yang lalu590

membalas semua(3)saya akan balas

  • PHP中文网

    PHP中文网2017-04-18 10:55:45

    Tidak, @ModelAttribute mempunyai dua fungsi
    Salah satunya adalah untuk mengeluarkan data, iaitu, mengeluarkan data daripada permintaan dan merangkumkannya ke dalam parameter kaedah pengawal letakkan data ini ke dalam Model Dengan cara ini, anda boleh menggunakan ungkapan EL dalam halaman jsp untuk mendapatkan data dan memaparkannya

    balas
    0
  • ringa_lee

    ringa_lee2017-04-18 10:55:45

    Jika anotasi @ModelAttribute ditambahkan pada parameter, kunci dalam @ModelAttribute akan ditemui terlebih dahulu sebelum melaksanakan @RequestMapping Jika tiada @ModelAttribute dan ia tidak tersedia atau tidak diperolehi, objek spitter akan dijadikan instantiated melalui. refleksi, dan kemudian permintaan yang diluluskan mendapat nilai yang anda tetapkan ke dalam objek. Walaupun hasilnya sama, prosesnya berbeza.

    balas
    0
  • 迷茫

    迷茫2017-04-18 10:55:45

    Walaupun ia mempunyai ciri tersendiri, saya tidak pernah menggunakannya setelah sekian lama menggunakannya, saya rasa ia boleh diabaikan @ModelAttribute

    balas
    0
  • Batalbalas