Cómo usar varios parámetros opcionales en springboot para obtener parámetros de solicitud
Nota: El contenido del cuerpo de la solicitud HttpServletRequest solo se puede leer una vez llamando a request.getInputStream(), request.getReader() y request.getParameter("key" ) métodos. ) una vez, las lecturas repetidas informarán una java.io.IOException: excepción de flujo cerrado.
1. obtener solicitud para obtener todos los parámetros
2. Parámetros opcionales
Parámetros opcionales de @RequestMapping
Utilice @requesMapping además Además de los parámetros opcionales de HttpServletRequest, HttpServletResponse, HttpSession y @PathVariable mencionados anteriormente, la función de controlador anotada también puede contener los siguientes parámetros opcionales, la mayoría de los cuales no están en ningún orden en particular.
La configuración regional a la que pertenece la solicitud actual.
Se utiliza para leer el contenido de la solicitud, equivalente a request.getInputStream() o request.getReader();
Se utiliza para generar contenido de respuesta, equivalente a Response.getOutputStream() o Response. obtenerEscritor().
Usuario actualmente autenticado
Encapsulación de Spring de elementos web como solicitudes, respuestas, sesiones, etc. HttpServletRequest/response/HttpSession y otros objetos web primitivos
Una estructura de mapeo utilizada para almacenar la estructura de mapeo de dominio del modelo.
Se puede utilizar para leer la suma de comprobación de un comando o valor de objeto de formulario. Este parámetro debe seguir inmediatamente al comando o parámetro del objeto de formulario que se va a validar. Esto se debe a que el enlace de datos permite vincular parámetros de entrada a múltiples beans Java (es decir, podemos convertir parámetros de solicitud de entrada en múltiples objetos Java).
Estado de la sesión. Cuando use @SessionAttributes para marcar una solicitud que requiere un valor correspondiente de la sesión, use SessionStatus.setComplete() para configurar la sesión para que tenga un tiempo limitado al final del procesamiento.
Vincula los parámetros de solicitud a los parámetros del método del controlador. Por ejemplo
Vincula los parámetros en el método del controlador al valor en el encabezado de la solicitud, por ejemplo
Vincula los parámetros en el método del controlador al valor en el cuerpo del contexto de la solicitud p>
p>
Por ejemplo
significa vincular el contenido de la solicitud en el cuerpo de la solicitud al parámetro de entrada u.
Vincula los parámetros en el método del controlador al valor en la cookie
Por ejemplo
Vincula los parámetros en el método del controlador al tipo correspondiente, el nombre El valor predeterminado es el nombre de la clase (primera letra en minúscula) o el valor de ModelAttribute, si se especifica un nombre de atributo.
Por ejemplo
Ejemplo
1. Escriba los parámetros del formulario directamente en los parámetros formales del método correspondiente del controlador. Es adecuado para el envío en modo de obtención. y no apto para envío de patrones.
formulario de URL: http://localhost/SSMDemo/demo/addUser1?username=lixiaoxiamp; contraseña=111111 Los parámetros enviados deben ser consistentes con los nombres de las entradas en el método del Controlador.
2. Reciba a través de HttpServletRequest, tanto el método de publicación como el método de obtención están disponibles.
3. Recibir a través de bean, tanto el método de publicación como el de obtención están disponibles.
(1) Cree un bean correspondiente a los parámetros del formulario
(2) Utilice este bean para encapsular los parámetros recibidos
4.4 Obtener a través de @PathVariable Parámetros. en la ruta
Por ejemplo, acceda a la ruta http://localhost/SSMDemo/demo/addUser4/lixiaoxi/111111 y luego cambie automáticamente las variables de plantilla {nombre de usuario} y {contraseña} en la URL con @PathVariable Parámetros vinculantes con el mismo nombre de la anotación, es decir, especifique nombre de usuario = lixiaoxi, contraseña = 111111 después de ingresar los parámetros.
5. Utilice la anotación @ModelAttribute para obtener los datos del formulario FORM de la solicitud POST.
El formulario Jsp es el siguiente:
El controlador Java es como siguiente:
6. Utilice la anotación @RequestParam para vincular los parámetros de solicitud a la entrada del método.
Cuando el nombre de usuario del parámetro de solicitud no existe, se producirá una excepción. Puede configurar el. atributo requerido=false para resolver este problema, por ejemplo: @RequestParam (valor="nombre de usuario", requerido=false)
Se producirá una excepción cuando el parámetro de solicitud nombre de usuario no exista. Puede configurar el atributo. requerido=falso para resolver el problema, por ejemplo