Una de las anotaciones más importantes en primavera es la anotación @RequestMapping que se usa para asignar requests HTTP a métodos de manejo de controladores MVC y REST. En las aplicaciones Spring MVC, DispatcherServlet (controlador frontal) es responsable de enrutar las requests HTTP entrantes a los métodos de manejo de los controladores. Al configurar Spring MVC, debe especificar las asignaciones entre las requests y los métodos del controlador. Para configurar el mapeo de requests web, usamos el @RequestMappinganotación. La anotación @RequestMapping se puede aplicar al nivel de clase y/o al nivel de método en un controlador. La anotación de nivel de clase asigna una ruta o patrón de solicitud específica a un controlador. A continuación, puede aplicar anotaciones adicionales a nivel de método para que las asignaciones sean más específicas para los métodos de controlador. Entonces, comprendamos la anotación @RequestMapping a nivel de método y de clase con ejemplos.
Requisitos:
- Eclipse (versión EE)/STS IDE
- Archivos JAR de primavera
- Tomcat Apache última versión
@RequestMapping Anotación a nivel de método
Configuración del proyecto
Nota : Vamos a utilizar Spring Tool Suite 4 IDE para este proyecto. Consulte este artículo para instalar STS en su máquina local ¿Cómo descargar e instalar Spring Tool Suite (Spring Tools 4 para Eclipse) IDE?
Paso 1: cree un proyecto web dinámico en su STS IDE. Puede consultar este artículo para crear un proyecto web dinámico en STS: ¿Cómo crear un proyecto web dinámico en Spring Tool Suite?
Paso 2: descargue el archivo Spring JAR desde este enlace y vaya a la carpeta src> main> webapp> WEB-INF> lib y pase estos archivos JAR.
Paso 3: Consulte este artículo Configuración del servidor Apache Tomcat y configure el servidor Tomcat con su aplicación.
Ahora estamos listos para ir.
Configuración del servlet de despachador
Se sugiere pasar por Dispatcher Servlet en Spring , ya que sirve como requisito previo para comprender este tema. Ahora vamos a configurar Dispatcher Servlet con nuestra aplicación Spring MVC.
Paso 4: vaya al archivo src> main> webapp> WEB-INF> web.xml y el código completo para el archivo web.xml se proporciona a continuación:
A. Archivo: web.xml
XML
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0"> <display-name>myfirst-mvc-project</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.jsp</welcome-file> <welcome-file>default.htm</welcome-file> </welcome-file-list> <absolute-ordering/> <servlet> <!-- Provide a Servlet Name --> <servlet-name>frontcontroller-dispatcher</servlet-name> <!-- Provide a fully qualified path to the DispatcherServlet class --> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <!-- Provide a Servlet Name that you want to map --> <servlet-name>frontcontroller-dispatcher</servlet-name> <!-- Provide a url pattern --> <url-pattern>/student.com/*</url-pattern> </servlet-mapping> </web-app>
Paso 5: Ahora ve a src > main > webapp > WEB-INF y crea un archivo XML. En realidad, este es un archivo de configuración de Spring como el archivo beans.xml. Y el nombre del archivo debe estar en este formato.
YourServletName-servlet.xml
Por ejemplo, para este proyecto, el nombre del archivo debe ser
frontcontroller-dispatcher-servlet.xml
Entonces, puede crear un archivo de configuración de Spring o simplemente puede crear un archivo XML simple y agregar las siguientes líneas de código dentro de ese archivo. Entonces, el código para frontcontroller-dispatcher-servlet.xml se proporciona a continuación.
B. Archivo: frontcontroller-dispatcher-servlet.xml
XML
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"> <context:component-scan base-package="com.student.controllers"></context:component-scan> </beans>
Cree sus clases de controlador
Paso 6: Ahora, creemos algunos controladores. Vaya a src/main/java y cree un nuevo paquete de controladores (por ejemplo, com.student.controllers) según su elección. Y dentro de eso, cree una clase Java y nombre la clase como DemoController. Ahora, cómo decirle a Spring que esta es nuestra clase de controlador. Entonces, la forma en que vamos a decirle a Spring es marcándolo con una anotación @Controller .
@Controller public class DemoController {}
Nota: Spring inicializará automáticamente la clase que tenga una anotación @Controller y registrará esa clase con el contenedor Spring.
Ahora vamos a crear un método simple dentro de la clase Controller y usar la anotación @RequestMapping antes del método, algo como esto.
// Annotation @RequestMapping("/hello") // Method public String helloWorld() { return "Hello World!"; }
Este es el ejemplo de la anotación @RequestMapping a nivel de método.
Ahora entendamos la anotación. @RequestMapping(“/hola”), entonces, ¿qué significa? Esta línea significa que, en la URL, si alguien accede a student.com/hello , este método en particular se ejecutará y realizará la operación que está escrita dentro de ese método en particular.
C. Archivo: DemoController.java
Java
package com.student.controllers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class DemoController { @ResponseBody @RequestMapping("/hello") public String helloWorld() { return "Hello World!"; } }
Ejecute el controlador Spring MVC
Paso 7: para ejecutar su aplicación Spring MVC , haga clic con el botón derecho en su proyecto> Ejecutar como> Ejecutar en el servidor y ejecute su aplicación como se muestra en la imagen a continuación.
Después de eso, use la siguiente URL para ejecutar su controlador como se muestra en la imagen a continuación. Todos los demás detalles se mencionan en la imagen.
http://localhost:8080/myfirst-mvc-project/student.com/hello
@RequestMapping Anotación a nivel de clase
Implementación:
La anotación @RequestMapping de nivel de clase asigna una ruta o patrón de solicitud específica a un controlador. A continuación, puede aplicar anotaciones adicionales a nivel de método para que las asignaciones sean más específicas para los métodos de controlador. Entendamos esta línea por un proyecto de ejemplo. Los pasos de » Configuración del proyecto » y » Configuración del servlet de despachador » son los mismos. Simplemente haga cambios en » Crear sus clases de controlador » y » Ejecutar su controlador Spring MVC «.
Cree sus clases de controlador
Entonces, en este ejemplo, vamos a crear un controlador de acción múltiple . MultiActionController es una implementación de controlador que permite que la misma clase maneje varios tipos de requests. Eso significa que dentro de una clase de controlador podemos tener muchos métodos de manejo como este.
Archivo: DemoController.java
Java
package com.student.controllers; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; @Controller public class DemoController { @ResponseBody @RequestMapping("/hello") public String helloWorld() { return "Hello World!"; } @ResponseBody @RequestMapping("/geeksforgeeks") public String welcomeGfgMessage() { return "Welcome to GeeksforGeeks"; } }
Ahora usemos la anotación @RequestMapping a nivel de clase antes del DemoController, algo como esto. Así que nuestro archivo DemoController.java modificado se muestra a continuación
Archivo: DemoController.java
Java
// Java Program to Illustrate DemoController Class package com.student.controllers; // Importing required classes import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; // Annotations @Controller @RequestMapping("/boys") // Class public class DemoController { @ResponseBody @RequestMapping("/hello") // Method public String helloWorld() { return "Hello World!"; } // Annotation @ResponseBody @RequestMapping("/geeksforgeeks") // Method public String welcomeGfgMessage() { return "Welcome to GeeksforGeeks"; } }
Sí, podemos hacer eso también. Pero necesitamos cambiar nuestra URL para ejecutar estas requests.
Ejecute su controlador Spring MVC
Para ejecutar su aplicación Spring MVC , haga clic con el botón derecho en su proyecto> Ejecutar como> Ejecutar en el servidor y ejecute su aplicación como se muestra en la imagen a continuación.
Y ahora, si usa esta URL » http://localhost:8080/myfirst-mvc-project/student.com/hello » para ejecutar su controlador, recibirá la siguiente advertencia y no habrá respuesta
WARNING: No mapping for GET /myfirst-mvc-project/student.com/hello
Para ejecutar su controlador, debe presionar la siguiente URL
http://localhost:8080/myfirst-mvc-project/student.com/boys/hello
Del mismo modo, para el método del controlador welcomeGfgMessage(), debe presionar la siguiente URL
http://localhost:8080/myfirst-mvc-project/student.com/boys/geeksforgeeks
Publicación traducida automáticamente
Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA