Prefacio
La verificación de datos es una tarea que casi todas las aplicaciones deben hacer. Los datos ingresados por el usuario se envían al servidor. Dios sabe si los datos ingresados por el usuario son legales y si es malicioso. Por lo tanto, un sistema de aplicación robusto debe verificar la entrada del usuario, bloquear las entradas ilegales fuera de la aplicación y evitar que estas entradas ilegales ingresen al sistema, asegurando así la estabilidad y la seguridad del sistema.
Todos sabemos que para una mejor experiencia de usuario y una mayor eficiencia, las aplicaciones web actuales tienen las siguientes dos verificaciones de datos:
La verificación de datos del cliente se realiza principalmente a través del código JavaScript; La verificación de datos del lado del servidor es la última línea de defensa para toda la aplicación para bloquear los datos ilegales, y se implementa principalmente a través de la programación en la aplicación.
Para reducir la carga de trabajo de los desarrolladores y mejorar la eficiencia laboral, el marco Struts2 también ha puesto mucho esfuerzo en la verificación de datos. Entonces, ¿cómo completa Struts2 la verificación de datos? (Dado que la capacidad de verificación del cliente del marco Struts2 es débil, no se resumirá. Este artículo resume principalmente la función de verificación de datos del lado del servidor del marco Struts2)
Escribir archivos de reglas de verificación
Todos sabemos que la verificación de datos es todo el código engorroso. Para salir de estos códigos engorrosos, el marco Struts2 proporciona verificación de datos basada en archivos de configuración. Solo requiere escribir un archivo de regla de verificación. El archivo de la regla de verificación especifica qué reglas debe cumplir cada campo de formulario.
Hablemos sobre la verificación de entrada del marco Struts2 a través de un ejemplo de demostración.
Página de recepción:
<Body> <Form Action = "Login" Method = "Post"> UserName: <input type = "text" name = "name" /> <s: fielderror fieldName = "name" /> <br> contraseña: <input type = "contraseña" name = "contraseña" /> <s: fielderror fieldname fieldName = "edad" /> <br> cumpleaños: <input type = "text" name = "cumpleaños" /> <s: fielderror campo
Código de procesamiento de acción de fondo:
LoginAction de clase pública extiende ActionSupport {Nombre de cadena privada; contraseña de cadena privada; edad privada int; cumpleaños de cita privada; Consejo de cadena privada; public void setName (nombre de cadena) {this.name = name; } public String getName () {nombre de retorno; } public void setPassword (String Password) {this.password = contraseña; } public String getPassword () {return Password; } public void setAge (int Age) {this.age = edad; } public int getAge () {return Age; } public void setBirthday (cumpleaños de fecha) {this.birthday = cumpleaños; } Fecha pública GetBirthday () {regreso de cumpleaños; } public void settip (consejo de cadena) {this.tip = tip; } public String getTip () {return tip; } public String Execute () lanza la excepción {// La operación se simplifica aquí. devolver el éxito; }}A través del código de acción anterior, podemos ver que no agregué ningún código de verificación de campo, pero solo necesitamos escribir un archivo de verificación, de la siguiente manera:
<? xml versión = "1.0" encoding = "utf-8"?> <!-Especifique la información DTD del archivo de configuración de verificación-> <! DocType Validorators público "-// Apache Struts // Xwork Validator 1.0.2 // en" "http:///struts.apache.org/dtds/xwork-validator-1.0.0.0.0.0. Elemento raíz del archivo de verificación-> <Alvalidators> <!-Verifique el atributo de nombre del archivo de configuración de verificación-> <field name = "name"> <!-Especifique el atributo de nombre debe cumplir con las reglas requeridas-> <field-validator type = "requerido"> <param name = "TRIM"> true </param> <message> Nombre debe estar lleno </Mensaje> </Field-Validator <<<! -> <Field-Validator type = "Regex"> <Param name = "RegexExpression"> <! [CDATA [(/W {4,25})]]>> </param> <sessage> El nombre de usuario que ingresa solo puede ser letras y números, y la longitud debe ser entre 4 y 25 </sessage> </field-validator> </scalle> name = "Password"> <Field-Validator type = "RequendationString"> <Param name = "TRIM"> True </amam> <Smessage> La contraseña debe ingresarse </Message> </Field-Validator> <Field-Validator type = "Regex"> <Param Name = "RegexExpression"> <! [CDATA [/W {4,25}]]] Solo pueden ser letras y números, y la longitud debe estar entre 4 y 25 </sessage> </field-validator> </field> <!-Verifique el atributo de edad de la acción-> <field name = "edad"> <cield-validator type = "int"> <param name = "min"> 1 </param> <param name = "max"> 150 </amamr> <message> edad debe ser entre 1 y 150 </150 </150 </Mensaje> 1 </param> <param name = "max"> 150 </amamr> <message> Age debe ser entre 1 y 150 </150 </150 </150 </param> <param name = "max"> 150 </amamr> <message> edad debe ser entre 1 y 150 </150 </150 </Mensaje> </field-validator> </field> <!-Verifique la propiedad de cumpleaños de la acción-> <field name = "cumpleaños"> <field-validator type = "date"> <param name = "min"> 1900-01-01 </amam> <param name = "max"> 2050-02-21 </aam> <message> El cumpleaños debe estar entre $ {min} y $ {mAx} </Mensaje} </field-validator> </field> </idadators>Las reglas del archivo de verificación de Struts2 son diferentes del método de diseño de archivos de verificación de STRUTS1. Cada acción en STRUTS2 tiene un archivo de verificación, por lo que el nombre del archivo del archivo de verificación debe cumplir con las siguientes reglas:
<Nombre de acción> -Validation.xml
El nombre de acción anterior se puede cambiar, la parte posterior -validation.xml siempre se soluciona y el archivo de verificación debe guardar en la misma ruta que el archivo de clase de acción.
Similar a la falla de conversión de tipo, cuando la verificación de entrada falla, Struts2 también devuelve automáticamente un resultado llamado "entrada", por lo que es necesario configurar un resultado llamado "entrada" en el archivo Struts.xml.
Información rápida de internacionalización
En caso de falla de verificación, se debe solicitar al usuario los mensajes de error. Así que ahora surge un problema. En un entorno de varios idiomas, ¿cómo solicitar correctamente la información de solicitud del lenguaje correspondiente? No es posible escribirlo directamente en el archivo de verificación como arriba. Para la información de solicitud de internacionalización, especifique el atributo clave para el elemento de mensaje, que especifica la clave correspondiente a la información de solicitud de internacionalización.
Por ejemplo, el archivo de verificación anterior se puede escribir aproximadamente así:
< type = "Regex"> <Param name = "RegexExpression"> <! [CDATA [(/W {4,25})]> </param> <Message Key = "name.regex"/> </field-validator> </field>Comprobante incorporado
En el archivo de verificación anterior, puede ver dicha declaración:
<Field-Validator type = "RequendedString"> <Field-Validator type = "regex"> ... ...
El valor de atributo de tipo aquí es el verificador. Hay una gran cantidad de dispositivos de verificación incorporados proporcionados dentro del marco Struts2. Estos dispositivos de verificación incorporados pueden satisfacer las necesidades de verificación de la mayoría de las aplicaciones. Solo necesitamos usar estos dispositivos de verificación.
Podemos usar la herramienta de descompresión para abrir el archivo xwork-2.3.24.1.jar. En la ruta Xwork-Core-2.3.24.1.jar/com/openSymphony/xwork2/validador/validadoras, podemos encontrar un archivo predeterminado.xml. Este archivo es el archivo de registro de dispositivo de verificación predeterminado para STRUTS2, y el contenido es el siguiente:
<? xml versión = "1.0" encoding = "utf-8"?> <! DocType Validorators público "-// apache struts // xwork validator Definición 1.0 // en" "http://struts.apache.org/dtds/xwork-validator-definition-1.0.dtdt"> zar Verificador-> <Validator name = "requerido"/> <validator name = "required"/> <!-Integer Verifier-> <Validator name = "int"/> <!-Long entero Verificador-> <Validator Name = "Long"/> <!-VERIFER DE INTERATOR CORTH-> <Name Validator = "" "/> <! Verificador-> <Validator Name = "Date"/> <!-Expression Verifier-> <Validator Name = "Expression"/> <!-VERifier de Expresión de campo-> <Validator Name = "FieldExpression"/> <!-VERIFERIOR DE ELECCIÓN-> <Validator Name = "Correo electrónico"/> <!-Url Verifier-> <Validator Name = "URL"/> <Validator Name = "Visitor" Visitor "/> <! name = "Visitor"/> <Validator Name = "Conversion"/> <Validator Name = "Conversion"/> <Validator Name = "StringLength"/> <Validator Name = "Regex"/> <Validator Name = "ConditionalVisitor"/> </Validators> <!-End Snippet: Validators-DeFault->
Con respecto al uso específico de estos dispositivos de verificación, no daré ejemplos aquí.
Resumir
Este artículo resume brevemente los dispositivos de verificación en el marco Struts2. Los conceptos básicos para los dispositivos de verificación mencionados aquí son cómo usarlos. Lo más importante es dominar la idea de los dispositivos de verificación Struts2 y completarlos a través de la configuración. Vale la pena aprender este método. En nuestro aprendizaje de otros marcos, también encontraremos este método. Estudio, dolor y felicidad.
De acuerdo, lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo tenga cierto valor de referencia para el estudio o el trabajo de todos. Si tiene alguna pregunta, puede dejar un mensaje para comunicarse. Gracias por su apoyo a Wulin.com.