Instrucciones de anotación de solicitudes de solicitud
La función de las solicitudes web de mapas de anotación @RequestMapping a clases de controladores específicos y/o métodos de controlador. Esta anotación se puede usar en una clase o método y especifica la ruta de solicitud a través del valor de la propiedad. Utilizado en la clase Controller para proporcionar información de mapeo de solicitud de URL preliminar, que es una ruta previa a la solicitud en relación con el directorio raíz de la aplicación web. Utilizado en el método del controlador, significa proporcionar un mapa de URL detallado. Si la clase del controlador no tiene una anotación de mapeo de solicitudes, la URL de la marca de anotación en el método es relativa al directorio raíz de la aplicación web.
La anotación @RequestMapping proporciona las siguientes propiedades:
Nombre: Se utiliza para especificar el nombre del mapeador
Valor: utilizado para especificar la ruta de mapeo, igual que la ruta
Ruta: se usa para especificar la ruta de mapeo, el mismo valor
Método: Se utiliza para especificar el tipo de solicitud: obtener, publicar, cabeza, opciones, poner, parche, eliminar, rastrear
Parámetros: especifique los parámetros solicitados
Encabezados: especifique el encabezado de solicitud, ejemplo de código fuente: requestmapping (value = "/something", encabezados = "content-type = text/*")
Consumidores: Especifica el tipo de contenido (tipo de contenido) que maneja el envío de solicitud, como Aplicación/JSON, Texto/HTML. La solicitud se asignará solo si el tipo de contenido coincide con uno de estos tipos de medios.
Produce: Especifique el tipo de contenido devuelto por la solicitud, por ejemplo: Produce = "Application/JSson; Charset = UTF-8"
Especifique la ruta de mapeo a través del atributo de valor
Use la anotación de SolicMapping en la clase del controlador
@Controlador @requestMapping ("Order") Public Class OrderInFocontroller {// Ejemplo 1 @RequestMapping ("OrderInfo") public ModelAndView OrderInfo1 () {return New ModelAndView ("Order/Info", "Mensaje", "OrderInfo"); }}Se agregó la solicitud de anotación ("pedido") en la clase OrderController, lo que indica que todas las solicitudes de pares deben comenzar con "root/orden"
La ruta de solicitud, por ejemplo, 1 es: http: // localhost: 8080/springmvcnext/orden/ordeninfo
Ejemplo 1 Si se comenta @RequestMapping ("orden") en el controlador, la ruta de solicitud correspondiente es: http: // localhost: 8080/springmvcNext/ordeninfo
Uso de la anotación de mapeo de solicitudes en el método del controlador
1. Uso básico común
@Controlador @requestMapping ("Order") Public Class OrderInFocontroller {// Ejemplo 1 @RequestMapping ("OrderInfo") public ModelAndView OrderInfo1 () {return New ModelAndView ("Order/Info", "Mensaje", "OrderInfo"); } // Ejemplo 2: manejar múltiples asignaciones de URL @RequestMapping ({"Info", "índice"}) // o @RequestMapping (valor = {"info", "índice"}) public ModelandView OrderInfo2 () {return New ModelAndView ("Orden/Info", "Mensaje", "OrderInfo2"); } // Ejemplo 3 @RequestMapping public ModelAndView OrderInfo3 () {return New ModelAndView ("Order/Info", "Mensaje", "OrderInfo3"); }}RequestMapping solo configura el atributo de valor. Si no se muestra ningún otro atributo, se omite el valor. Puede completar la información de mapeo de URL. Si se especifican otros atributos, el atributo de valor debe completarse claramente.
La ruta de acceso del ejemplo 1 anterior es: http: // localhost: 8080/springmvcNext/orden/ordeninfo
Ejemplo 2: La propiedad de valor en la interfaz de mapeo de solicitudes es una matriz, y todas las rutas de acceso también son compatibles para pasar una matriz Ejemplo 2: http: // localhost: 8080/springmvcnext/orden/index o http: // localhost: 8080/springmvcnext/orden/info
Ejemplo 3: Cuando el valor está vacío, significa que el método es la acción predeterminada en la clase. La ruta de acceso del ejemplo 3 es: http: // localhost: 8080/springmvcnext/orden
2. Mapeo de plantillas de URL
Declare la variable URI en la anotación de mapas de solicitudes y acceda al valor de la URL de solicitud real a través de la anotación @PathVariable. El ejemplo es el siguiente:
@Controllerpublic class OrderInfoController { // Example 10 URL with placeholder @RequestMapping(value = "user/{userId}/order/{orderNumber}", method = RequestMethod.GET) public ModelAndView OrderInfo4(@PathVariable int userId,@PathVariable String orderNumber) { return new ModelAndView("order/info", "message", "UserId:"+UserId+"OrderNumber:"+OrderNumber); }}Ejemplo 10 URL de solicitud: http: // localhost: 8080/springmvcNext/user/12/orden/333 Cuando se inicia una solicitud a través de esta url, SpringMVC extraerá la variable ××× en {× •}} en la plantilla de URL a través de @PathVariable. La variable URL se convertirá automáticamente al tipo correspondiente. Si no se puede convertir, se devolverá un error. Por ejemplo, intente acceder a ella con la siguiente URL: http: // localhost: 8080/springmvcnext/user/xxx/orden/333 donde el parámetro userid = xxx, se produce un error:
3. Mapeo de ruta de URL de estilo hormigón
Los personajes comodines de estilo hormigas son los siguientes:
Ejemplo:
@ControllerPublic de clases OrderInFocontroller {// Ejemplo 11 URL con poseedor de posición @RequestMapping (valor = "orden*", método = requestmethod.get) //@requestmapping (valor = "orden?", Método = requestmethod.get) //@request (value = "order/**", método = methetMethod.get) Public Modelandview nuevo ModelAndView ("Order/Info", "Mensaje", "OrderInfo5"); }}Ejemplo 11 URL de solicitud: http: // localhost: 8080/springmvcNext/orden/ordendexx? OrderNumber = 12 puede coincidir con todas las solicitudes de http: // localhost: 8080/springmvcNext/orden/ordenxxxxxx? OrderNumber = yyyy
@RequestMapping (value = "Order?", Method = requestMethod.get) puede coincidir como ".../OrderA? Ordernumber ...". ".../órdenes? @RequestMapping (valor = "orden/**", método = requestmethod.get) puede coincidir como ".../orden/aaa? OrderNumber ...". ".../orden/bbb/ccc? Ordernumber ..."
Además, Solicmapping también admite el mapeo de ruta de URL de estilo de expresión regular, omita esto
Especifique el tipo de solicitud a través del atributo de método
El tipo de predicado de solicitud de atributo de método proporcionado por requestmapping, el siguiente ejemplo solo acepta las solicitudes de obtener
// Ejemplo 4 @RequestMapping (valor = "detalle", método = requestmethod.get) // También puede usar @getmapping ("detalle") public modelandView info () {return New ModelAndView ("Order/Info", "Mensaje", "Info"); }SpringMVC también proporciona anotaciones dedicadas para cada tipo de solicitud:
@Getmapping
@PostMapping
@Putmapping
@DeletEmapping
@Patchmapping
Especificar restricciones de valor de parámetro o parámetro a través de parámetros
El atributo de parámetros puede definir que el parámetro de solicitud contiene parámetros específicos, o también puede definir restricciones en los valores de los parámetros, como se muestra en el siguiente código:
// Ejemplo 5 Parámetros Los parámetros calificados incluyen OrderNumber @RequestMapping (valor = "Detalle2", Params = "OrderNumber") public ModelAndView Detell2 (String Order Number) {return New ModelAndView ("Order/Info", "Mensaje", OrderNumber); } // Ejemplo 6 Parámetros El valor de parámetros calificados @RequestMapping (valor = "detall3", params = "OrderNumber! = 1222") public ModelAndView Detail3 (String Order Number) {return New ModelAndView ("Order/Info", "Mensaje", OrderNumber); }Ejemplo 5: Los parámetros de solicitud calificados deben contener el Number de orden de parámetro. Si el parámetro con nombre de orden no está incluido, el acceso se niega: ruta de acceso: http: // localhost: 8080/springmvcNext/orden/detalle2? OrderNumber = 12
Ejemplo 6: Los parámetros de solicitud calificados deben contener el Number de pedido de parámetros y el valor del parámetro no puede ser 1222. Ruta de acceso: http: // localhost: 8080/springmvcnext/orden/detalle3? Ordennumber = 1222 Se informa un error se informa
Especificar restricciones de valor de parámetro o parámetro a través de encabezados
El atributo de método proporcionado por requestMapping puede especificar el tipo de encabezado de solicitud. Solo cuando el tipo de encabezado de datos de solicitud cumple con el valor especificado se puede acceder normalmente.
// Ejemplo 7 Params Valor de parámetro limitado @RequestMapping (value = "HeadTest", Headers = "ApikeY = 231313131313") // @requestmapping (value = "HeadTest", Headers = {"Acept = Application/JSON"}) ModelAnview Header () {return y New Modelview ("Orden/Info", "Mensaje", "," Header "); }Ejemplo 7: El encabezado de solicitud debe contener apikey: 23131313 para devolver normalmente, acceder directamente y devolver el error:
Agregar información del encabezado ApikeY: 2313131313 El acceso es exitoso:
Especifique el tipo de contenido de envío solicitado a través del consumo (tipo de contenido)
// Ejemplo 8 Consumer @RequestMapping (value = "consumes", método = requestmethod.post, consumo = "application/json") public modelandView Consumers (String Order Number) {return New ModelAndView ("Order/Info", "Mensaje", OrderNumber); }El ejemplo limita el tipo de parámetro de solicitud a la aplicación/json, lo que significa que este método solo procesa las solicitudes de que el tipo de contenido es la aplicación/JSON:
Lo siguiente pasa la prueba de postman:
Establezca el formato de parámetro de solicitud en Application/JSON, al que se puede acceder normalmente:
Establezca el formato de parámetro en X-Form-URLEncoded, Error de retorno, estado HTTP 415
Especifique el tipo de contenido devuelto a través de Produces (Tipo de contenido)
El atributo de productores se utiliza para establecer el tipo de contenido de retorno y cumple con las siguientes condiciones: el valor que contiene aceptación en el encabezado de la solicitud de aceptación es el mismo que el valor establecido por el productor, o la solicitud aceptada se establece sin visualización.
// El ejemplo 8 produce una aplicación de datos de retorno limitado/JSON @RequestMapping (value = "producir", método = requestmethod.get, produce = "aplicación/json") public ModelAndView produce (String Order Order) {return New ModelAndView ("Order/Info", "Mensaje", OrderNumber); }El ejemplo 8 indica la aplicación de formato de contenido de retorno/JSON. Cuando el formato de aceptación establecido por el cliente es Text/JSON, se informa un error. Estado http 406
Cuando el formato de aceptación establecido por el cliente es la aplicación/JSON o el valor de aceptación no está configurado, puede ejecutarse normalmente
Resumir
Lo anterior es la anotación de mapeo de mapeo de solicitud para la revisión de Spring MVC y aprende nuevas series de tutoriales presentados por el editor. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!