Quel est le meilleur, retourne “ModelAndView” ou “Ssortingng” sur le contrôleur spring3

La voie du retour ModelAndView

@RequestMapping(value = "/list", method = RequestMethod.GET) public ModelAndView list( @UserAuth UserAuth user, ModelAndView mav) { if (!user.isAuthenticated()) { mav.setViewName("redirect:http://www.test.com/login.jsp"); return mav; } mav.setViewName("list"); mav.addObject("articles", listService.getLists()); return mav; } 

La voie du retour Ssortingng

 @RequestMapping(value = "/list", method = RequestMethod.GET) public Ssortingng list( @UserAuth UserAuth user, Model model) { if (!user.isAuthenticated()) { return "redirect:http://www.test.com/login.jsp"; } model.addAtsortingbute("articles", listService.getLists()); return "list"; } 

Celles-ci fonctionnent de la même manière. quelle est la meilleure façon? et quelle est la différence?

Il n’y a pas de meilleur moyen. Les deux sont parfaitement valables. La méthode que vous choisissez d’utiliser dépend de celle qui convient le mieux à votre application – Spring vous permet de le faire d’une manière ou d’une autre.

Historiquement, les deux approches proviennent de différentes versions de Spring. L’approche ModelAndView était le principal moyen de renvoyer à la fois les informations de modèle et de vue à partir d’un contrôleur avant le spring 2.0. Vous pouvez maintenant combiner le paramètre Model et la valeur de retour Ssortingng , mais l’ancienne approche est toujours valide.

Je voudrais append moi 2 cents aussi. La seconde approche est davantage orientée vers la convention, c’est-à-dire que le développeur mentionne explicitement ce qu’il voit, mais la chaîne de retour implicite est le nom de la vue. Donc moins de codage, lisible et standard. Bien mieux que l’ancien avec ModelAndView