Soy un principiante en Spring MVC. No entendí los adaptadores del manejador claramente. ¿Qué es un adaptador de controlador y cuándo debo usar adaptadores?¿Qué es el adaptador de controlador en mvc de primavera?
Respuesta
Comience here y vea si eso ayuda; si no es así, formule una pregunta más específica. Además, this section de los documentos de Spring explica los adaptadores predeterminados y cómo se relacionan con la configuración de anotación.
En pocas palabras, los adaptadores de controlador deciden qué controlador (y método) solicitar una solicitud.
A HandlerMapping simplemente asigna un método a una URL. La mayoría de los principiantes no usan este objeto directamente, sino que usan RequestMapping en su lugar. El tipo de devolución del método mapeado (generalmente) determina qué vista utilizará SpringMVC para generar una respuesta.
Por ejemplo, la siguiente RequestMapping generará una HandlerMapping para peticiones GET a "/" o "/ home" para invocar este método:
@RequestMapping(value={"/", "/home"}, method=RequestMethod.GET)
public String getHome() {
return "homepage";
}
El método devuelve un nombre de cadena de un punto de vista, lo que haría normalmente se resuelven en "/WEB-INF/views/homepage.jsp" (pero eso depende de su ViewResolver, por supuesto)
Sólo un FYI para comenzar: puede agregar diferentes objetos que pueda necesitar como parámetros a su método (como Locale, HttpServletRequest, etc.). Consulte RequestMapping javadoc para obtener más información.
Preguntó por HandlerAdapter, usted explicó HandlerMapping –
A HandlerMapping
asigna un método a una URL, por lo que DispatcherServlet
sabe qué método debe invocarse mediante una solicitud específica. Luego, el DispatcherServlet
usa un HandlerAdapter
para invocar el método.
¿Por qué DispatcherServlet no invoca un método directamente?
Debido a que hay muchas maneras de invocar un método, como anotación, XML, etc. HandlerAdapter
desacopla el DispatcherServlet
y las acciones invocadas.
Puede encontrar Adapter en HandlerAdapter y esa parte del nombre proviene del patrón Adapter. El adaptador es como un puente entre dos objetos y HandlerAdapter es un puente entre el objeto del manejador y el servlet del despachador.
Como puede ver en el código fuente de HandlerAdapter a continuación tomado de la documentación de Spring, hay un método, método de manejo con tipo de devolución ModelAndView. Cada HandlerAdapter implementará este método para delegar HttpServletRequest y HttpServletResponse en el objeto del manejador para que luego el objeto del manejador ejecute la lógica de la aplicación usando HttpServletRequest/Response.
public interface HandlerAdapter {
//Check if controller is supported
boolean supports(Object handler);
//handle request
ModelAndView handle(HttpServletRequest rqst,
HttpServletResponse rsp,
Object handler) throws Exception;
Esta aplicación lógica de aplicación produce modelo y vista. La vista puede estar en forma de ver el nombre del objeto String o View. El modelo contiene datos que se usarán para representar la vista. HandlerAdapter ajustará el modelo y la vista en el objeto ModelAndView. Es trabajo de servlet del despachador procesar el objeto ModelAndView.
El servlet despachador no conoce el objeto del manejador ni se libera de la lógica de aplicación directamente. El objeto Handler también se alivia de convertir el modelo y la vista en el objeto ModelAndView porque HandlerAdapter lo hará.
- 1. JSON posterior a la primavera controlador MVC
- 2. ¿Qué es el contenedor en el marco de primavera?
- 3. PathVariable en el controlador de la primavera
- 4. ¿Cuál es @Service en MVC primavera
- 5. Qué es un patrón de adaptador bidireccional
- 6. ¿Qué es MVC (Controlador de vista de modelo)?
- 7. Petición de solicitud solicitada en primavera MVC
- 8. ¿El controlador de supervisión MVC y MVP es el mismo?
- 9. de forma mapeo primavera al controlador
- 10. Controlador StructureMap instancia de controlador y controlador nulo en MVC
- 11. ¿Puedo encontrar la URL para un controlador mvc de primavera en la capa de visualización?
- 12. ¿Cuál es el trabajo del controlador en MVC?
- 13. ¿Por qué MouseAdapter es un adaptador?
- 14. Campo oculto en la primavera MVC
- 15. Controlador de primavera no funciona como debería
- 16. configurando el jacksonObjectMapper no funciona en mvc de primavera 3
- 17. Controlador Spring MVC - getPathInfo() es nulo
- 18. Excepción: "No hay ningún adaptador para controlador. ¿Su controlador implementa una interfaz compatible como controlador?"
- 19. ¿Cuál es el propósito de `convertView` en el adaptador ListView?
- 20. primavera @MVC y @RequestParam validación
- 21. Controlador de primavera: objetos de uso de dominio como @RequestBody
- 22. Deshabilitar condicionalmente el controlador MVC de ASP.NET
- 23. Primavera no se puede encontrar el controlador de espacio de nombres OSGi
- 24. sitio web mvc de primavera en la raíz ("/")
- 25. ¿Qué es ASP.Net MVC?
- 26. ¿Es posible utilizar OutputCache en mvc JsonResult métodos de controlador?
- 27. inicialización del servlet mvc de primavera
- 28. ¿Para qué es el controlador jdbc "org.gjt.mm.mysql.Driver"?
- 29. MVC - disponer recursos en el controlador
- 30. Spring MVC controlador anotada en maravilloso
El enlace está roto. – Vishnu
@Vishnu Las cosas cambian en seis años, supongo. –