Modèle de printemps

Lorsque j`ai commencé à écrire des applications Web dans Spring MVC, j`ai trouvé le modèle Spring et les attributs de session pour être un peu un mystère-en particulier en ce qui concerne la demande HTTP et les étendues de session et leurs attributs que je connaissais bien. Un élément du modèle Spring va-t-il être trouvé dans ma session ou ma demande? Si oui, comment pourrais-je contrôler cela? Dans ce post, j`espère démystifier comment le modèle de printemps MVC et de travail de session. Le nouveau style avec le paramètre Model comme méthode et la chaîne retournée comme nom de vue. Semble provenir d`une approche de conception légèrement différente. Ici, les objets de modèle sont considérés comme une sorte d`événements ou d`éléments qui sont passés à plusieurs gestionnaires, avant d`être retournés à la vue où ils sont restitués. Il me rappelle comment les événements sont traités dans le monde AWT/swing. Ce modèle est plus cohérent avec l`approche où plusieurs gestionnaires peuvent construire sur les objets Model, jusqu`à ce qu`il atteigne une vue. Convertissez Project en projet Maven pour ajouter toutes les dépendances de Spring MVC requises au projet. Créez un nouveau fichier Bean configuration Spring:/WebContent/WEB-INF/crunchify-servlet.xml vous vous demandez peut-être pourquoi Spring utilise des attributs de modèle. Pourquoi ne pas simplement ajouter des données directement à l`objet de demande? J`ai trouvé la réponse à cette question dans Rod Johnson et. livre d`Al développement professionnel Java avec le cadre de printemps.

Ce livre est un peu daté en ce qui concerne l`API Spring (écrit au printemps 2,0), mais j`ai toujours trouvé le texte fournir un peu plus d`explications sur ce qui se passe sous les couvertures du moteur Spring. Voici la citation de ce texte concernant les éléments du modèle: vous pouvez accéder aux attributs de modèle dans les vues avec Thymeleaf comme suit: donc, espérons-le, ce message vous a aidé à comprendre le modèle de printemps et les attributs de session. Ce n`est pas la magie, c`est juste une question de comprendre comment HttpSession et HttpServletRequest sont utilisés pour stocker le modèle Spring et les attributs de session. J`ai placé le code illustré ici sur le site Web d`Intertech. Si vous êtes intéressé à l`utiliser pour explorer et comprendre le modèle de printemps et de la session, n`hésitez pas à le télécharger à partir d`ici. Retour ModelAndView avec les attributs de modèle inclus: créer un nouveau fichier Web. Xml s`il n`est pas déjà là. Map Spring MVC dans le fichier/WebContent/WEB-INF/web.xml. Le @ModelAttribute est une annotation qui lie un paramètre de méthode ou une valeur de méthode de retour à un attribut de modèle nommé, puis l`expose à une vue Web. Maintenant, vous avez une appréciation de la façon dont le modèle Spring et les données attributaires de session sont ajoutées à HttpServletRequest et HttpSession.

Mais maintenant, vous pouvez être préoccupé par la façon de gérer ces données dans la session de printemps. Spring fournit un moyen de supprimer les attributs de session Spring, et ainsi également de le supprimer de HttpSession (sans avoir à tuer l`intégralité de HttpSession). Ajoutez simplement un objet Spring SessionStatus en tant que paramètre à une méthode de gestionnaire de contrôleur. Dans cette méthode, utilisez l`objet SessionStatus pour mettre fin à la session Spring. Thymeleaf permet d`accéder aux haricots enregistrés au printemps application Context avec la syntaxe @beanName, par exemple: Intertech fournit également des conseils pour Java et Spring Framework. Voyez ce que nous pouvons faire pour vous! Alors maintenant, nous devrions être en mesure de voir ce qui est dans l`objet de session avant, pendant et après le printemps MVC a géré une demande HTTP lors de l`annotation avec @SessionAttributes.

This Campaign has ended. No more pledges can be made.