Modele vue controleur java

Pour implémenter une application Web basée sur le modèle de conception MVC, nous allons créer les classes Student et StudentService-qui agira comme notre couche modèle. Les méthodes @InitBinder peuvent également être définies dans une classe annotée @ControllerAdvice, auquel cas elles s`appliquent à tous les contrôleurs. Cela fournit une alternative à l`utilisation d`un WebBindingInitializer. Dans cet article, nous allons examiner l`utilisation du noyau org. springframework. UI. Model, org. springframework. UI. ModelMap et org. springframework. Web. servlet.

ModelView fourni par Spring MVC. Pour les extensions de fichier dans l`URI de requête, la configuration Java MVC et l`espace de noms MVC, enregistrez automatiquement les extensions telles que. JSON,. xml,. RSS et. Atom si les dépendances correspondantes telles que Jackson, JAXB2 ou Rome sont présentes sur le classpath. Il se peut que des extensions supplémentaires ne soient pas nécessaires pour être enregistrées explicitement si elles peuvent être découvertes via ServletContext. getMimeType (String) ou l`infrastructure d`activation Java (voir javax. activation.

MimetypesFileTypeMap). La classe ControllerClassNameHandlerMapping est une implémentation HandlerMapping qui utilise une convention pour déterminer le mappage entre les URL de demande et les instances Controller qui doivent gérer ces demandes. Remarquez comment dans l`implémentation de la méthode handleRequest (..) aucun nom de vue ou de vue logique n`est jamais défini sur le ModelAndView retourné. Le DefaultRequestToViewNameTranslator est chargé de générer un nom de vue logique à partir de l`URL de la demande. Dans le cas du RegistrationController ci-dessus, qui est utilisé conjointement avec le ControllerClassNameHandlerMapping, une URL de demande de http://localhost/registration.html aboutit à un nom de vue logique de l`enregistrement généré par le DefaultRequestToViewNameTranslator. Ce nom de vue logique est ensuite résolu dans la vue/WEB-INF/jsp/registration.jsp par le Bean InternalResourceViewResolver. @ModelAttribute méthodes peuvent également être définies dans une classe annotée @ControllerAdvice et ces méthodes s`appliquent à tous les contrôleurs. L`annotation @ControllerAdvice est une annotation de composant qui permet la détection automatique des classes d`implémentation via l`analyse de classpath.

Il est également possible d`utiliser un préfixe spécial Forward: pour les noms de vue qui sont finalement résolus par UrlBasedViewResolver et sous-classes. Cela crée un InternalResourceView (qui fait finalement un RequestDispatcher. Forward ()) autour du reste du nom de la vue, qui est considéré comme une URL. Par conséquent, ce préfixe n`est pas utile avec InternalResourceViewResolver et InternalResourceView (pour les JSPs par exemple). Mais le préfixe peut être utile lorsque vous utilisez principalement une autre technologie de vue, mais que vous souhaitez toujours forcer l`avant d`une ressource à être gérée par le moteur servlet/JSP. (Notez que vous pouvez également enchaîner plusieurs résolveurs d`affichage, à la place.) Tout comme les méthodes de contrôleur standard annotées avec une annotation @RequestMapping, les arguments de méthode et les valeurs de retour des méthodes @ExceptionHandler peuvent être flexibles. Par exemple, HttpServletRequest est accessible dans les environnements servlet et PortletRequest dans les environnements portlet. Le type de retour peut être un String, qui est interprété comme un nom de vue, un objet ModelAndView, un ResponseEntity, ou vous pouvez également ajouter le @ResponseBody pour que la valeur de retour de la méthode soit convertie avec des convertisseurs de message et écrite dans le flux de réponse. Le DefaultRequestToViewNameTranslator mappe les URL de demande aux noms de vue logiques, comme avec cet exemple: pour activer MVC Java config ajouter l`annotation @EnableWebMvc à l`une de vos classes de @Configuration: l`avantage de ModelMap est-il nous donne la possibilité de passer un valeurs et de traiter ces valeurs comme si elles étaient dans une carte: l`annotation @ModelAttribute peut également être utilisée sur les méthodes @RequestMapping.

This entry was posted in Uncategorized by admin. Bookmark the permalink.

Comments are closed.