En la serie (4) y (5), mostramos cómo vincular los datos y cómo garantizar la corrección de los datos que obtenemos después de los datos vinculantes. De esto es de lo que vamos a hablar en este artículo -> Verificación de datos.
Aquí usamos Hibernate-Validator para la verificación. Hibernate-Validator implementa el marco de verificación JSR-303 para admitir la verificación del estilo de anotación. Primero, necesitamos descargar el paquete JAR requerido en http://hibernate.org/validator/. Aquí usamos 4.3.1.final como demostración. Después de la descompresión, agregue los tres paquetes Hibernate-Validator-4.3.1.final.jar, JBoss-Logging-3.1.0.Jar, Validation-API-1.0.0.ga.jar al proyecto.
Configure el archivo SpringServlet-Config.xml en el proyecto anterior, como sigue:
< -> <Property name = "ValidationMessageSource" ref = "ValidateTeSageSource"/> </ bean> <bean id = "conversion-service"/> <bean id = "validateMessageSource"> <Property name = "BaseName" valor = "classpath: ValidateTeMessages"/> <Nombre de propiedad = "FileCodings" Valor = "Utf-8"/> <Nombre de propiedad de propiedades "CapeAtheSages" value = "120"/> </bean>
El ClassPath: ValidAtEmessage en <Property name = "Basename" value = "classpath: ValidateMessages"/> es el archivo donde se encuentra el mensaje de verificación de anotación, y necesitamos agregarlo en la carpeta de recursos.
Agregue un contenido ValidateController.java en el paquete com.demo.web.controllers de la siguiente manera:
paquete com.demo.web.controllers; import java.security.nosuchalgorithmexception; import javax.validation.valid; import og.springframework.stereotype.controller; import og.springFrameFrame.ui.model; import org.springFrameWork.validation org.springframework.web.bind.annotation.modelattribute; import org.springframework.web.bind.annotation.requestMapping; import org.springframework.web.bind.annotation.requestmethod; import.demo.web.models.validatemodel;@controlador "/Validate") clase pública ValidateController {@RequestMapping (valor = "/test", método = {requestMethod.get}) Test de cadena pública (modelo modelo) {if (! Model.ContainsAttribute ("ContentModel")) {Model.addattribute ("ContentModel", new ValidatEmodel ()); } return "ValidateTest"; } @RequestMapping (value = "/test", método = {requestMethod.post}) Test de cadena pública (modelo modelo, @Valid @ModelAttribute ("ContentModel") ValidAtEmodel ValidEmodel, BindeGreSult Resultado) Lanza nosuchalgorithMexception {// Si hay un error de verificación, regreso a la página de formulario si (resultado. prueba (modelo); devolver "ValidatesCcess"; }}@Valid @ModelAttribute ("ContentModel") ValidAtEmodel ValidateTeModel @Valid significa verificar después de vincular los datos a @modelattribute ("ContentModel").
Agregue un contenido ValidateModel.java en el paquete com.demo.web.models de la siguiente manera:
paquete com.demo.web.models; importar org.hibernate.validator.constraints.email; import org.hibernate.validator.constraints.notempty; importar org.hibernate.validator.constraints.range; public class ValidatEmodel @Range (min = 0, max = 150, mensaje = "{age.not.inrange}") edad privada de cadena; @Notempty (mensaje = "{ageal.not.empty}") @email (mensaje = "{correo electrónico.not.correct}") privado cadena correo electrónico; public void setName (nombre de cadena) {this.name = name; } public void setAge (String Age) {this.age = Age; } public void setEmail (correo electrónico de cadena) {this.email = correo electrónico; } public String getName () {return this.name; } public String getAge () {return this.age; } public String getemail () {return this.email; }}Agregue el siguiente contenido al archivo donde se encuentra el mensaje de verificación de anotación, el archivo ValidateMessages.Properties:
name.not.empty =/u540d/u79f0/u4e0d/u80fd/u4e3a/u7a7a/u3002age.not.inrange =/u5e74/u9f84/u8d85 /u51fa/u8303/u56f4/u3002email.not.correct=/u90ae/u7bb1/u5730/u5740/u4e0d/u6b63/u786e/u3002em ail.not.empty =/u7535/u5b50/u90ae/u4e0d/u80fd/u60df/u6050/u3002email.not.empty =/u7535/u5b50/u 90ae/u4e0d/u80fd/u6050/u3002email.not.empty =/u7535/u5b50/u90ae/u4e0d/u80fd/u60df/u6050/u3002
Entre ellos, name.not.empty, etc. corresponde al nombre xxx en mensaje = "xxx" en el archivo ValidateModel.java. El siguiente contenido se ingresa en la codificación ASCII que se convierte automáticamente en chino. Por supuesto, también puede escribir XXX directamente como contenido rápido sin crear otro archivo ValidateMessages.Properties y agregarlo. Sin embargo, esto es incorrecto, porque si lo incorporas, no podrás internacionalizarlo.
Agregue dos vistas en la carpeta Views, validateTest.jsp y validateSuccess.jsp, respectivamente:
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" PageEncoding = "UTF-8"%> <! DocType html public "-// w3c // dtd html 4.01 transición // en" "http://www.w3.org/tr/html4/loos taglib prefix = "form" uri = "http://www.springframework.org/tags/form" %> <html> <cead> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"> <title> insert title aquí </title> </head> <body <body <body <body <body <body <body " modelAttribute = "ContentModel" Method = "Post"> <form: errores path = "*"> </form: errores> <br/> name: <form: input path = "name"/> <br/> <form: errores path = "name"> </form: errores> <br/> edad: <form: input path = "edad"/> <br/> <form: rath igualmente = "</"/"/"/"/"/"/" </formul Correo electrónico: <form: input path = "edad"> </form: errores> <br/> path = "correo electrónico"/> <br/> <form: errores path = "correo electrónico"> </form: errores> <br/> <input type = "enviar" valor = "enviar"/> </form: form> </body> </html>
<%@ page lenguaje = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! DocType html público "-// w3c // dtd html 4.01 transición // en" " "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <title> title aquí </title> </thead> <body> ¡la verificación" es exitosa! </body> </html>
Es particularmente importante señalar que el nombre xxx después de modelattribute = "xxx" en la vista validateTest.jsp debe ser consistente con el nombre xxx en el correspondiente @Valid @ModelAttribute ("xxx"), de lo contrario los datos del modelo y la información de error no estarán vinculadas.
<Forma: errores ruta = "nombre"> </form: errores> mostrará la información de error para los atributos correspondientes del modelo. Cuando Path = "*", se muestra la información de error para todos los atributos del modelo.
Ejecute la prueba:
Haga clic para enviar directamente:
Puede ver el mensaje de error de que la configuración se muestra correctamente.
Complete datos incorrectos para enviar:
Puede ver que el mensaje de error que aún se muestra correctamente.
Complete los datos correctos para enviar:
Puede ver que la verificación es exitosa.
Las siguientes son las principales notas e instrucciones de verificación:
El contenido de verificación de datos termina aquí, descarga de código: demostración
Para obtener más información, consulte el documento oficial: http://docs.jboss.org/hibernate/validator/4.3/reference/en-us/html/validator-usingvalidator.html
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.