J'utilise Spring MVC dans mon application web. Pour chaque demande que je voudrais préparer l'environnement, par exemple charger des données à partir du magasin de données et enregistrez-le afin que chaque contrôleur puisse accéder à ces informations. Je suppose que c'est ce que les filtres sont pour (entre autres choses). Je peux attacher une information à la variable request
dans un filtre, mais comment puis-je y accéder à partir du contrôleur? Ou y a-t-il une manière généralement meilleure de faire ceci?Spring MVC - comment passer des données du filtre au contrôleur
Répondre
Je pense que votre problème au moment est de savoir comment obtenir l'ensemble des données à l'intérieur de votre demande filtre (déjà fait par vous), puis l'accès à l'intérieur de la méthode hamdlerMapping de votre contrôleur (vous voulez atteindre).
Je suis d'accord avec les deux réponses précédentes, mais si vous avez décidé de le faire de cette façon seulement alors je pense que vous devriez suivre ma réponse. Dans la méthode du gestionnaire pour laquelle vous avez mappé votre demande dans votre automate, vous pouvez avoir un paramètre dans la signature de méthode pour HttpServletRequest request
et il contiendra le paramètre de requête que vous avez défini dans votre filtre. Et vous pouvez l'obtenir à partir de cet objet de requête dans votre contrôleur.
J'espère que cela vous aide. À votre santé.
Je ne vois pas pourquoi c'est une bonne chose à faire, filtrer ou non.
Si vous avez vraiment des données en lecture seule dont chaque contrôleur a besoin, je pense qu'une solution de mise en cache qui est chargée au démarrage est une meilleure idée. Je ne ferais pas cela avec un filtre, et je ne chargerais pas chaque demande avec une telle chose. Une fois que c'est fait, pourquoi continuer à répéter l'action?
@duffymo est juste, mais si vous voulez vraiment faire que je vous suggère d'utiliser intercepteur http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-handlermapping-interceptor
- 1. Passer des paramètres de JSP au contrôleur - Spring MVC
- 2. Ajax passer un objet "carte" au contrôleur Spring MVC
- 3. Spring MVC - jqGrid - Passer l'objet de la vue au contrôleur
- 4. Passer des données de Usercontrol au contrôleur
- 5. Comment passer des données de formulaire via le contrôleur avec Spring MVC 3.1 - nouveau à Spring MVC
- 6. Spring WebFlow: POST du débit au contrôleur MVC
- 7. Spring 3, de transmettre des données au contrôleur jsp
- 8. Passer des variables du modèle au contrôleur
- 9. Découplage du contrôleur Spring MVC du HTTPServlet
- 10. Comment passer des données d'entrée de la vue au contrôleur
- 11. Spring Web MVC: Passer un objet de l'intercepteur du gestionnaire au contrôleur?
- 12. Passer des données de jsp au contrôleur
- 13. ZKSpring comment passer des variables à la zul ZK du contrôleur Spring MVC?
- 14. Comment passer des données de la forme jsp au contrôleur
- 15. Mise au point - passer des données du contrôleur à Voir
- 16. Comment passer des valeurs du contrôleur au javascript?
- 17. MVC - Comment passer le modèle de la vue au contrôleur
- 18. Passer des données du contrôleur à jsp
- 19. Comment passer plusieurs tableaux jquery au contrôleur dans MVC
- 20. Comment passer des données du filtre à l'action?
- 21. comment passer Html.TextBox au contrôleur?
- 22. Obtenir des données du modèle au contrôleur
- 23. Comment passer un objet au contrôleur angularjs à l'aide du contrôleur MVC Action
- 24. asp.net mvc comment puis-je passer la collection au contrôleur
- 25. Comment passer viewmodel au contrôleur?
- 26. Spring MVC & JSP: Comment passer un paramètre du contrôleur à JSP?
- 27. Comment passer des valeurs au contrôleur du code Javascript dans MVC
- 28. Comment passer la valeur de la vue MVC au contrôleur
- 29. Spring 3 MVC accédant à HttpRequest à partir du contrôleur
- 30. ASP.NET MVC Transmission des données de la vue au contrôleur
Un filtre n'est rien de plus qu'un intercepteur spécifique à HTTP. Mes commentaires au sujet de ne pas encombrer chaque demande avec une telle chose tiennent toujours. – duffymo
Merci. Mais la question n'est toujours pas entièrement résolue ... comment puis-je transmettre des données d'un intercepteur au contrôleur? Prenons l'exemple utilisé dans la documentation de printemps en vérifiant les heures d'ouverture. Et si je voulais utiliser la valeur de l'heure actuelle dans chaque gestionnaire? Oui je pourrais le compter againg, mais alors je ferais la même chose deux fois dans chaque demande et je devrais également mettre une ligne redondante de code à chaque gestionnaire. Je sais que ce n'est pas un très bon exemple mais j'espère que vous comprendrez ce que je veux dire maintenant. – tobik
vous pouvez par exemple utiliser request.setAttribute (arg0, arg1); eux vous cam récupérer cette date dans le contrôleur, ou peut-être dans une session –