En el artículo anterior, presenté la explicación detallada del COI de Spring Learning Notes 1 e intento usar anotaciones y código Java tanto como sea posible. A continuación, este artículo se centra en la introducción de la verificación de datos del formulario de Spring Learning Notes 2 y el código de ejemplo de carga de archivos. Para más detalles, ¡consulte este artículo!
1. Verificación de datos de formulario
Al registrarse, los usuarios deben completar su cuenta, contraseña, correo electrónico y número de teléfono móvil, que se requieren y deben cumplir con ciertos formatos. Por ejemplo, la cuenta debe ser inferior a 32 dígitos, el correo electrónico debe cumplir con el formato de correo electrónico y el número de teléfono móvil debe ser un número de 11 dígitos, etc. Puede usar información de verificación en el momento del registro o escribir una clase de herramienta específicamente para la verificación; Echemos un vistazo a cómo implementar la verificación de datos de formulario a través de anotaciones simples en SpringMVC.
Bajo el paquete Javax.Validation.Constraints, se definen múltiples anotaciones. Por ejemplo:
@Notnull: el valor del elemento anotado no debe ser nulo. Nota: Si no complete ningún dato en el formulario, no significa que sea nulo, sino una cadena vacía.
@Size: el elemento anotado debe ser una cadena, colección o matriz, y la longitud debe cumplir con el rango dado.
@Past: El valor del elemento anotado debe ser un momento pasada.
@Digits: el elemento anotado debe ser un número, y su valor debe tener un número especificado de dígitos.
@Pattern: El valor del elemento anotado debe coincidir con la expresión regular dada
Además, se definen más anotaciones bajo el paquete de org.hibernate.validator.constraints. Por ejemplo:
@Mail: Formato de correo electrónico coincidente.
@URL: Haga coincidir el formato de URL.
Echemos un vistazo a cómo usarlo en SpringMVC.
1. Primero cargue el requerido en el archivo pom.xml
<Spendency> <MoupRoD> javax.Validation </groupid> <artifactId> Validation-API </artifactid> <verserse> 1.1.0.final </versión> </pendency> <epardency> <MoupRoDID> org.hibernate </groupId> <artifactid> hibebernate-validator </artifactid> <versions> 5.2.2.2..
Cabe señalar que Javax.Validation solo define la API de verificación, y la implementación de la API debe agregarse, como org.hibernate.Validator, de lo contrario se informará un error.
2. Agregue anotaciones a las propiedades de la clase, tomando user.java como ejemplo.
El usuario de la clase pública implementa serializable {@size (min = 32, max = 32, mensaje = "uuid debería ser una cadena de 32 bits") ID de cadena privada; @size (min = 1, max = 32, mensaje = "La longitud de la cuenta debe ser entre 1-32-bit") String private UserNeNeNeNeM vacío ")@correo electrónico (mensaje =" El correo electrónico no se puede vaciar ") correo electrónico de cadena privada; @size (min = 11, max = 11, mensaje =" La longitud del número de teléfono móvil es 11 dígitos ") String de cadena privada celular;} Mensaje: si la verificación de datos del formulario falla, se puede mostrar un mensaje de error.
3. Aplique la función de verificación en UserController y agregue la anotación @Valid.
Tome UserController.java como ejemplo:
@Controlador@requestmapping ("/user") public class UserController {private UserSerService UserService; @autewiredPublic UserController (UserSerService UserService) {this.UserService = UserService;}@requestmapping (value = "/registro", método = requestmethod.post) public logregistration (@Valid User User, Errores Errors) {//////////////@/@//@Valt. Aplica la función de verificación if (errores.haserrors ()) {// Si la verificación del formulario falla, regresa a la página de registro return "registrar";} if (user.getID () == "") user.setId (uuid.randomuuid (). toString (). replaceAll ("-", "")); if (user.geteGDate () == 0) user (. Date (). GetTime ()); Userservice.adduser (usuario); redirect:/user/" + user.getusername ();}} 4. Escriba un archivo JSP y muestre la página, tomando registro.jsp como ejemplo:
<%@ página contentType = "text/html; charset = utf-8" lenguaje = "java"%> <%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix = "sf" uri = "http://www.springframework.org/tags/form" %> < %@ page session = "false" %> <html lang = "en"> <fead> <title> registrado </title> <link rel = "stylesheet" type = "text/css" href = "<c: url value =" recursos/style.css "/"/" >/head> <body> <sf: form de método = "post" action = "/registro/user/registro" commandName = "user"> <%-si la verificación de datos de formulario falla, el mensaje de error se muestra-%> <sf: errores path = "*" element = "div" cssclass = "errores"/> <Br/> <tabla align = "center"> <tr> <tr> name de la usuario: el nombre de usuario: nombre de la usuario: nombre de la usuario: </td> <td> <sf: input path = "username" csserrorClass = "errores"/> </td> <tr> <td> contraseña: </td> <td> <sf: contraseña = "contraseña" csserrorClass = "errores"/> </td> </tr> <tr> <td> correo electrónico: </td> Path = "Correo electrónico" csserrorClass = "errores"/> </td> </tr> <tr> <td> celular: </td> <td> <sf: input rath = "celular" csserrorclass = "errores"/> </td> </tr> </table> <br/> <input type = "Enviar" valor = "registrar"/> </sf: form> </body> </html>
El efecto final es el siguiente:
2. Subida de archivo
En Spring, cargar archivos es simple y solo toma 3 pasos.
1. Si el ActartCherservlet, configuramos heredando el abstracto y la concentración de controlador de controlador, sobrecarga el método CustomizeReGistration () para configurar los detalles específicos del multipart.
@OverrideProtected Void CustomizeReGistration (servletregistration.Dynamic Registration) {// Limite el tamaño del archivo cargado a no más de 2MB, la solicitud completa no excede 4m, y todos los archivos cargados deben escribirse en el registro de disco. 0));} 2. Configure el analizador multipart.
// Configurar el resolver multipart @BeanPublic MultipResolver multipertResolver () lanza IOException {return New StandardServletMultIPartresolver ();} 3. Procese la solicitud multipart. Para obtener información como archivos cargados por los usuarios, puede usar la matriz de byte [] para representarla, pero se recomienda que se recomiende la interfaz multiparto proporcionada por Spring. Proporciona más funciones, como obtener el nombre del archivo, el tamaño del archivo, el tipo de archivo, etc.
@RequestMapping (value = "/{username}", método = requestmethod.post) cadena pública showUserInfo (@RequestPart ("icon") múltiple icon) lanza ioexception {icon.transferto (nuevo archivo ("/usuarios/pingping/proyectos/idealProjects/spring/registro/src/src/webpap/upp/upp/upp/up icon.getOriginalFileName ())); return "user";} Método TransferTo (File Dest): Escriba archivos al sistema.
Escriba una prueba de página para ver si el archivo en el directorio de archivos especificado se ha cargado correctamente.
<form de método = "post" enctype = "multipart/form-data"> <label> cargar la imagen avatar? </label> <input type = "file" name = "icon" aceptar = "image/jpeg, image/png" value = "seleccione archivo"/> <botón type = "enviar"> Confirmar </boton> </orm>
1. Referencias: Práctica de primavera (4ª edición).
2. Dirección de Github: https://github.com/everseeker0307/register.
Lo anterior es la verificación de datos del formulario y el código de ejemplo de carga de archivos de Spring Learning Notes 2 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!