1. Validate () Método en acción
STRUTS2 proporciona una interfaz validable, que solo tiene el método Validate () en esta interfaz. La clase que implementa esta interfaz puede llamarse directamente por Struts2. La clase ActionSupport implementa la interfaz VADIDABLE, pero su método validate () es un método vacío, que necesitamos reescribir.
El método Validate () se ejecutará antes de la ejecución del método Execute (). El método Execute () se ejecutará solo si la verificación de datos es correcta. Si se comete un error, el error se agregará al campo Fielderrors. Si hay múltiples métodos de procesamiento lógico en la acción definida, y diferentes lógicas de procesamiento requieren diferentes reglas de verificación, en este caso validate () utilizará las mismas reglas de verificación para todas las lógicas de procesamiento. Para implementar diferentes lógicas de verificación, es necesario pasar el método Validatex (), donde X representa el nombre del método de la lógica de procesamiento.
Clase de acción:
LoginAction de clase pública extiende ActionSupport {private static final long SerialVersionUid = 1l; private String UserName; private String userPassword; public String Execute () {System.out.println ("Ejecutar"); return Success;} public String Login () {System.Println ("Login"); return Succes;} public void void validate () {System.out.println ("Validata");} public void ValidAtElogin () {System.out.println ("ValidAtelogin"); if (! (UserName.equals ("SBW") && UserPassword.equals ("123"))) {addfielderror ("Error", "Información incorrecta");});} {return username;} public void setUsername (String UserName) {this.Username = username;} public String getUserPassword () {return userPassword;} public void setUserPassword (String userPassword) {this.userpassword = userPassword;}}struts.xml
<paquete name = "main" extends = "struts-default"> <Global-results> <resultado name = "login">/login.jsp </ resultado> </global-resultos> <Action name = "loginperson" método = "login"> <resultado name = "exitoso">/éxito.jsp </resultado> <resultado de resultado = "entrada">/válido/válido
éxito.jsp
<Body> Iniciar sesión con éxito <S: Property Value = "Cuenta"/> </fody>
validateLogin.jsp
<Body> <S: Fielderror/> </body>
Ejecutar resultados (la primera prueba es correcta, la segunda prueba es incorrecta)
2. Pase el marco de verificación de Xwork
Al usar el método Validar para verificar, si hay una gran cantidad de acciones en la aplicación web, el método Validar debe reescribirse varias veces. Por lo tanto, puede usar el marco de validador de XWork para verificar los datos de Struts2 para reducir la cantidad de código.
Cree un archivo de verificación LoginAction-Validation.xml en el paquete Com.Action. Nota: Cuando hay múltiples métodos de procesamiento de negocios en una acción, la regla de nombres es: ActionName-MethodName-Validation.xml, donde ActionName es el nombre de clase de acción, el nombre del método es el nombre del método de un método de procesamiento comercial en la acción, y el orden de búsqueda del archivo es el mismo que validate () y validatex ().
Inicio de sesión-validación.xml
<? xml versión = "1.0" encoding = "utf-8"?> <! DocType Validators public "-// Apache Struts // Xwork Validator 1.0.2 // en" "http://struts.apache.org/dtds/xwork-validator-1.0.2.dtdd"> <validators> <camse name = "username" type = "RequendedString"> <Smession> El nombre no debe nulo </sessage> </field-validator> </field> <field name = "userpassword"> <cield-validator type = "requiredString"> <sessage> La contraseña no debe nulo </sessage> </field-validator> </field> </caltatorators>
Corre de nuevo de la siguiente manera:
El método de verificación de campo anterior es el método de verificación de campo, y otro método es el método de verificación que no es de campo, como sigue:
Login-Validation.xml:
<Acalvalators> <Validator type = "requiredString"> <param name = "fieldName"> UserName </param> <sessage> name no debe nulo </sessage> </alvalidator> <validator type = "requiredString"> <param name = "fieldName"> userPassword </param> <message> contraseña no debe null
El resultado es el mismo que el método de verificación de campo
Adjunto: Verificadores de uso común para puntales2: