Tengo una serie de métodos de control repartidos en varias clases. Todos los métodos toman un objeto Model
y todos mis métodos completan algunas propiedades compartidas en el modelo (controlan principalmente la barra de navegación). ¿Hay alguna manera de conectar un método 'base' en Spring? Quiero un método que pueda poblar mis propiedades compartidas y luego ir al método del controlador específico (o revertir para el caso). ¿Alguien sabe cómo hacer eso?Spring Framework MVC Base Controller Método
Respuesta
Suena como un HandlerIntercepto r podría ser un buen enfoque.
Es un poco AOP como - puede definir una clase que tiene un método PreHandle
o PostHandle
, y configurar las solicitudes en las que se ejecutará. En su caso, es probable que desee un PostHandle
, ya que eso le dará acceso al ModelAndView, para que pueda completarlo con los elementos compartidos.
Hay varios puntos de extensión en la primavera y el Spring MVC se puede tomar:
HandlerInterceptor
- una forma sencilla para interceptar cada método de control- Spring AOP - antes/después de consejos que cumplan todos los controladores
WebArgumentResolver
- ¿quizás puede personalizar de algún modo los argumentos de resolución y procesarlos antes de llamar al controlador?
Si la lógica que está implementando es una preocupación transversal que generalmente no está acoplada a vistas particulares, sugiero usar un interceptor en lugar de crear jerarquías funcionales de controlador. Las jerarquías de controladores pueden dificultar el manejo en lo que respecta a elementos como mapeo de excepciones y administración/ciclo de vida de datos de sesión. Además, el nivel de vista es donde es más probable que necesite cambiar las cosas a lo largo del tiempo para cambiar las demandas de los clientes, por lo que una jerarquía funcional a prueba de futuro no va a suceder.
org.springframework.web.servlet.HandlerInterceptor
tiene un método 'postHandle' que le da acceso a la solicitud, el controlador que manejó la solicitud y el ModelMap. Eso deberia ser todo lo que necesitas. Si necesita algún control del controlador, siempre puede agregar metadatos a él, indicando, por ejemplo, qué clase de encabezado usará (en el futuro, cuando tenga que cambiar eso, se trata de una cadena en un xml o anotación, . en lugar de cambiar de clase lo que se hereda de y todo lo que conlleva)
encenderlos como esto:
<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
<property name="interceptors">
<list>
<bean class="a.package.MyHandlerInterceptor"/>
</list>
</property>
</bean>
- 1. URL @RequestMapping codificada en Spring MVC Controller
- 2. MVC Base Controller y Ninject
- 3. Pruebas unitarias REST Controller con spring-test-mvc
- 4. Actualizado Spring MVC Framework Tutorial
- 5. Acceda a "Solicitud de carga útil" en Spring MVC Controller?
- 6. Spring Framework, habilite el método PUT
- 7. Método Init en Spring Controller (versión de anotación)
- 8. ASP.Net MVC Controller Namespace array
- 9. ASP.net MVC Controller - Uso del constructor
- 10. Spring 3 MVC Nesting RequestMapping
- 11. Spring: herencia del controlador mediante la anotación @Controller
- 12. Spring MVC, hacia adelante
- 13. Zend Framework - Set No Layout for Controller
- 14. zend framework 2 add new controller
- 15. UnitTest Error Controller en Zend Framework
- 16. Prueba Spring MVC mapppings anotación
- 17. ¿Cómo puedo combinar @Aspect con @Controller en Spring 3?
- 18. jQuery y Spring MVC
- 19. ¿Cómo puedo llamar a un método de WebApi desde el Método de acción MVC Controller?
- 20. jQuery $ .get llamada al método en Controller
- 21. MVC Controller Index a veces 404?
- 22. Spring MVC Controller redirige usando parámetros de URL en lugar de en respuesta
- 23. Spring-MVC Problema al usar @Controller en el controlador que implementa una interfaz
- 24. ¿Qué significa cuando Spring MVC @Controller devuelve un nombre de vista nulo?
- 25. Spring 3.0 MVC MVC: etiqueta vista-controlador
- 26. Deserializar Objetos JSON en Asp.Net MVC Controller
- 27. ¿Cómo funciona Joomla Model View Controller (MVC)?
- 28. XML/JSON POST con RequestBody en Spring REST Controller
- 29. Spring Framework name background
- 30. Eventos de Spring Framework
Muchas gracias! – Nik