1. Hay un método Validate () en ActionSupport. Este método es un método de verificación. Se ejecutará antes de ejecutar el método Execute (), por lo que puede desempeñar un buen papel en la verificación.
@Override // Reescribe el método Validate () en Action public void validate () {if (null == this.username || this.username.length () <4 || this.username.length ()> 6) {this.addactionError ("UserName Invadate");}} a. Si la verificación falla, podemos llamar a AddActionError ("Mensaje de error"); De esta manera, se guardará el mensaje de error.
Después de ejecutar todo el método Validate, el sistema verificará automáticamente la página JSP correspondiente a Name = "Entrada". Generalmente se recomienda saltar a la página que registramos, es decir, de dónde venimos y de dónde vamos
/registerResult.jsp/register.jsp
b. Entonces estamos registrados.jsp
Es decir, agregue esta etiqueta Struts2 a la página de registro inicial
<S: ActionError cssstyle = "color: rojo"/>
El significado es: si hay un mensaje de error, es decir, ActionError existe, luego emite este mensaje de error.
Además, podemos establecer las etiquetas en CSS
// Tenga en cuenta que el uso de etiquetas Struts2 debe introducir etiquetas en el archivo de encabezado: < %@ taglib prefix = "s" uri = "/struts-tags" %>
do.
Una forma de comparar las fechas:
Brithday y Graduate son tipos de fecha
if(null != birthday && null != graduation){Calendar c1 = Calendar.getInstance();c1.setTime(birthday);Calendar c2 = Calendar.getInstance();c2.setTime(graduation);if(!c1.before(c2)){this.addActionError("birthday should be before graduation");}}2. Nivel de acción y nivel de campo. De esta manera, podemos agregar a diferentes niveles al agregar errores, y podemos ser más flexibles al solicitar mensajes de error, sin agregar toda la información al nivel de acción, toda la información se mostrará igual. Por ejemplo: necesitamos usar fuentes rojas para representar el mensaje de error de los errores de contraseña repetidos, mientras que otra información, como el nombre de usuario, la edad, etc., se representan en fuentes verdes. En este momento, puede agregarlo a diferentes niveles utilizándolo.
En la página de registro, simplemente escriba una etiqueta de nivel de campo. como sigue:
<S: ActionError cssStyle = "Color: Red" // Nivel de acción <S: Fielderror cssStyle = "Color: Blue"> </S: Fielderror> // Level de campo public Void validate () {if (null == this.username || this.usernam invadate "); // Agregar mensaje de error al nivel de acción this.addfielderror (" nombre de usuario "," UserName Invadate en campo "); // Agregar mensaje de error al nivel de campo}}3. Después de enviar un error, la información original se mostrará en el formulario.
<s: form de acción = "registrattaction"> <s: textfield name = "username" etiqueta = "username"> </s: textfield> <s: contraseña name = "contraseña" etiqueta = "contraseña"> </s: contraseña> <s: contraseña name = "repassword" etiqueta = "repassword"> </s: contraseña> <s: textfield name = "edad" etiqueta = "edad"> </s: fieldfield> <s: textield " etiqueta = "brithday"> </s: textfield> <s: textfield name = "graduate" etiqueta = "graduado"> </s: textfield> <s: enviar value = "enviar"> </s: enviar> </s: form>
Usando la etiqueta Struts2, puede escribir automáticamente y luego mostrar la información de nivel de campo incorrecta como se muestra a continuación.
4. Sin embargo, aunque este método para usar automáticamente las tablas para escribir es conveniente, no satisface nuestras necesidades en muchos casos, por lo que podemos usar la compensación tipográfica personalizada.
Método 2: Defina el método de diseño a simple, para que podamos escribirlo nosotros mismos en el método HTML.
Los errores a nivel de campo no se mostrarán automáticamente.
<s: form de acción = "registro" teme = "simple"> <br/> nombre de usuario: <s: textfield name = "username" etiqueta = "username"> </s: textfield> <br/> contraseña: <s: contraseña name = "contraseña" etiqueta = "contraseña"> </s: contraseña> <br/> repasado: <s: contraseña name = "repassword" etiqueta = "repassword"> </s: contraseña> <br/> edad: <s: textfield name = "edad" etiqueta = "edad"> </s: textfield> <br/> cumpleaños: <s: textfield name = "cumpleaños" etiqueta = "brithday"> </s: textfield> <br/> graduado: <s: textield name = "graduado" graduado = "graduado" valor = "enviar"> </s: enviar> </s: formulario>
5. Para la seguridad, los Struts se envían en la publicación cuando no se define ningún método, lo cual es más seguro.
6. Si el valor de entrada no se ajusta al método, por ejemplo, la edad es de tipo int y la entrada es de tipo de cadena, el sistema juzgará y agregará un valor de campo no válido para la "edad" de campo al nivel de campo. La información es la siguiente:
Proceso de ejecución:
1) Primero realiza la conversión de tipo
2) Luego realice la validación de entrada (ejecute el método Validar)
3) Si se produce algún error en el proceso anterior, el método de ejecución no se ejecutará nuevamente. La página pasará a la página en Struts.xml cuyo nombre es el resultado correspondiente a la entrada.
8. Implementación del método addactionError () de la clase ActionSupport: primero cree un objeto ArrayList y luego agregue un mensaje de error al objeto ArrayList.
9. Cuando se llama al método getActionErrors () para devolver una lista de mensajes de error de nivel de acción, el devuelto es en realidad una copia de la colección en lugar de la colección en sí. Por lo tanto, los elementos en la copia aún se eliminan llamando al método Clear () en la copia de la colección, en lugar de los elementos de la colección original. En este momento, el contenido en la colección original no ha recibido ningún impacto. En otras palabras, las listas de mensajes de error a nivel de acción son legibles para los desarrolladores, pero no son escritos
Si desea eliminar el mensaje de error después de validar y dejar que ejecute el método de ejecución incluso si hay un mensaje de error, puede llamar a esto.clearAllActionErrors () o this.ClearAllFielderRors () Método
10. El mensaje de error subyacente en el nivel de Fielderror se implementa a través de LinkedHashMap. La clave del mapa es el tipo de cadena y el valor es el tipo de lista <string>. Esto significa que un nombre de campo puede corresponder a múltiples mensajes de error, y estos mensajes de error se colocan en la recopilación de la lista <str. String>. Por lo tanto, hay múltiples mensajes de error para lograr el mismo error
Lo anterior es una explicación detallada del método de verificación utilizado para ingresar validato () en puntales introducidos por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!