El desarrollo de la anotación de MVC significa un desarrollo de clase basado en anotaciones. Para cada procesador definido, no hay necesidad de registrarse en el XML.
El registro se completa solo anotando clases y métodos en el código.
Definir el procesador
@Controller: la clase actual es un procesador
@RequestMapping: el método actual es un método de procesador, el nombre del método es arbitrario y la solicitud se procesa y se responde.
@Controller clase pública MyController {@RequestMapping (value = "/hello.do") public ModelAndView DOCONTROL (HTTPServletRequest Soly, respuesta httpServletResponse) {modelandView mv = new ModelAndView (); MV.AdDObject ("Mensaje", "Método de ejecución"); MV.SetViewName ("¡Bienvenido, Neil!"); regresar MV; }} Requestmapping puede estar restringido, por ejemplo
Copie el código de la siguiente manera: @RequestMapping (valor = "/hello.do", params = {"name = neil", "! Age"}, método = requestmethod.post)
método = requestMethod.post Tipo de envío limitado para publicar
params = {"name = neil", "! Age"} El nombre del parámetro debe llevarse a cabo en la solicitud limitada, el valor es Neil y la edad del parámetro no se puede transportar.
Acepte los parámetros de solicitud
Si el nombre del parámetro en la solicitud es el mismo que el nombre del parámetro del método del procesador, se puede obtener directamente.
@RequestMapping (valor = "/hello.do") public ModelAndView Docontroll (String Name, int Age) {System.out.println ("Name:" + Name + ", Age:" + Age); ModelandView mv = new ModelAndView (); regresar MV; }Si los nombres de los parámetros son inconsistentes, debe ubicarlo a través de @RequestParam.
@RequestParam tiene tres propiedades
La copia del código es la siguiente: DOCONTROLL (@RequestParam (name = "UserName") Nombre de cadena, @RequestParam (name = "Userage") int Age)
Variable de ruta @pathvariable
Los parámetros en el método del procesador pueden provenir de los parámetros llevados por la solicitud, o de las variables en las variables de ruta URI, es decir,.
Al igual que los parámetros normales mencionados anteriormente, si el nombre de la variable de ruta es inconsistente con el nombre del parámetro que recibe su valor, debe indicar el nombre de la variable de ruta a través de los parámetros.
Como se muestra a continuación, tenga en cuenta el nombre de usuario y el nombre, la edad y la edad.
@RequestMapping (value = "/{username}/{edad} /hello.do") public modelandView Docontroll (@PathVariable ("UserName") Nombre de cadena, @RequestParam Int Age) {System.Println ("Nombre:" + Nombre + ", edad:" + edad); ModelandView mv = new ModelAndView (); regresar MV; }Método del procesador Devuelve el valor
Los siguientes cuatro procesadores comúnmente utilizados con anotación @Controller son:
1, regrese a ModelAndView
Una vez que se completa el método del procesador, debe saltar a otros recursos y pasar datos entre los recursos redirigidos, luego devolver ModelAndView.
public ModelAndView Docontroll () {ModelAndView ModelAndView = new ModelAndView (); // el modelo de datos aprobado.AdDobject ("Nombre", "Neil"); modelandView.setViewName ("/user.do"); return ModelAndView; }2, regresa al vacío
Después de procesar la solicitud, no hay necesidad de saltar, y el procesador puede volver a nacer, como la respuesta de solicitud asíncrona de Ajax.
Si necesita saltar, también puede usar el servletapi para enviar o avanzar.
3, Return Object
El procesador puede devolver un objeto de objeto, que no aparece como una vista lógica, pero se usa para mostrar datos directamente en la página.
Al devolver un objeto de objeto, debe usar la anotación @ResponseBody para poner los datos JSON convertidos en el peso de respuesta.
@RequestMapping (valor = "/hello.do") @ResponseBody ModelandView Docontroll () {return New Student ("Neil", 998); } El front-end obtiene datos
P.AJAX ({URL: "Hello.do", Complete: Function (Data) {Alert (data.name + "" + data.age);}})Del mismo modo, puede devolver la lista de colecciones, el mapa, etc.
@RequestMapping (value = "/hello.do") @ResponseBody ModelandView Docontroll () {List <Sentude> List = New ArrayList <Estudio> (); list.add (nuevo estudiante ("A", 11)); list.add (nuevo estudiante ("B", 22)); list.add (nuevo estudiante ("C", 33)); lista de devolución; } FR.AJAX ({URL: "Hello.do", Complete: Function (Data) {$ (data) .Each (function (index)) {alert (data [index] .name + data [index] .age);}}})4, volver a la cadena
Puede haber tres escenarios para devolver una cadena:
Nombre de vista lógica
La cadena devuelta por el procesador puede especificar el nombre de la vista lógica y convertirla en una dirección de vista física a través de la resolución del analizador de vista.
La ruta final de acceso real = "Prefijo" + Nombre de vista lógica + "Sufijo"
Si no especifica el prefijo previo, también puede devolver directamente el nombre de la vista física, como
return "/webinf/admin/welcome.jsp"
Redirigir redirección
return "redirect: /admin/next.action";
Es equivalente a la respuesta.sendedirect (). Después de reenviar, la barra de direcciones del navegador se convierte en la dirección reenviada.
Dado que se inicia una nueva solicitud, los parámetros originales no se pueden pasar a la siguiente URL al reenviar.
Si desea pasar parámetros, puede empalmar los parámetros después de URL & A = 1 y B = 2
Reenvío
return "adelante: /admin/forward.action";
Es equivalente a request.getRequestDIsPatcher (). Reenviar (solicitud, respuesta). Después de reenviar, la barra de direcciones del navegador sigue siendo la dirección original.
El reenvío no ejecuta la nueva solicitud y respuesta, pero comparte una solicitud y respuesta con la solicitud antes de reenviar.
Los parámetros se pueden reutilizar directamente antes de reenviar.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.