Problema de salto de SpringMVC
El controlador de SpringMVC devuelve una vista y modelo lógicos cada vez que procesa los datos.
Por lo tanto, veremos que el controlador nativo devuelve un ModelAndView (con vista y modelo en el interior).
En circunstancias normales (a menos que el método anotado por @ModelAttribute), ModelAndView eventualmente se devuelva.
Por supuesto, a veces un método de procesamiento de funciones no necesariamente necesita devolver una vista lógica, pero también puede redirigirse a otro método de función
Reenviar internamente a una vista lógica u otro método funcional.
---
La potencia de SpringMVC es que encapsula una gran cantidad de código subyacente para servlets, pero bloquea por completo al usuario de la API de servlet
El uso de, por lo tanto, los saltos de página en SpringMVC también se dividen en dos categorías:
Use servletapi para implementar salto de página
Método de redirección: dado que la esencia de la redirección es exigir al navegador que reinvie una solicitud, las páginas en SpringMVC generalmente se colocan en Web-INF, y el navegador no puede acceder directamente a ellas)
Entonces, la redirección aquí es esencialmente redireccionando a otro método funcional.
Reenvío de solicitud dentro del servidor: el reenvío de la solicitud es un comportamiento interno del servidor, por lo que puede saltar directamente para acceder a una página JSP o saltar a otro método de procesamiento de funciones.
`` `texto
//Use native ServletApi for page redirection @RequestMapping("/c")public String test(HttpServletResponse response, HttpServletRequest request) throws ServletException, IOException {System.out.println("testC");//Skip to a page inside the servidor // request.getRequestDispatcher ("/web-inf/jsp/index.jsp"). ADELAR (Solicitar, respuesta); // omita a un método de procesamiento de funciones dentro del servidor // request.getRequestDispatcher ("/dispather/b"). Forward (solicitud, respuesta); // redirigir una respuesta del método de función.sendedirect (request.getContextPath ()+"/dispather/b"); regresar nulo; }Use la API de SpringMVC para implementar salto de página
Devuelve el nombre de la vista lógica directamente
text @RequestMapping ("/B") public String testb () {System.out.println ("testb"); // regresa directamente a una vista de retorno "índice"; }Devuelve un modelandview personalizado: al personalizar ModelAndView, puede redirigir o solicitar el reenvío.
`` `texto
// El controlador usa modelandView para saltar y redirigir @RequestMapping ("/e") public ModelAndView taste () {System.out.println ("taste"); // omita una página dentro del servidor // devuelve "índice"; // omita a un método de procesamiento de funciones dentro del servidor // devuelve nuevo ModelAndView ("Forward:/dispather/b"); // redirigir un método de función devolver nuevo modelandView ("redirect:/dispather/b");}Resumir
Lo anterior se trata de este artículo que discute el problema de salto de la página en SpringMVC. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!
referirse a:
Implementación de programación de Java del ejemplo de inicio de sesión simple de SpringMVC
SpringMVC Interceptor implementa el inicio de sesión único
SpringMVC REST Style Introducción e ejemplo de código de implementación