Maison  >  Questions et réponses  >  le corps du texte

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 Il y a quelques jours581

répondre à tous(3)je répondrai

  • PHP中文网

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

    Non, @ModelAttribute a deux fonctions
    L'une consiste à extraire les données, c'est-à-dire à retirer les données de la requête et à les encapsuler dans les paramètres de la méthode du contrôleur. placez ces données dans le modèle de cette façon, vous pouvez utiliser des expressions EL dans les pages jsp pour récupérer les données et les afficher
    .

    répondre
    0
  • ringa_lee

    ringa_lee2017-04-18 10:55:45

    Si l'annotation @ModelAttribute est ajoutée au paramètre, la clé dans @ModelAttribute sera trouvée en premier avant d'exécuter @RequestMapping. S'il n'y a pas de @ModelAttribute et qu'elle n'est pas disponible ou n'est pas obtenue, un objet spitter sera instancié via. réflexion, puis la demande transmise obtient la valeur que vous avez définie dans l'objet. Même si le résultat est le même, le processus est différent.

    répondre
    0
  • 迷茫

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

    Bien qu'il ait ses propres caractéristiques, je ne l'ai jamais utilisé après l'avoir utilisé pendant si longtemps, je pense qu'il peut être ignoré @ModelAttribute

    .

    répondre
    0
  • Annulerrépondre