Soy nuevo en Struts y me esto encontrando en un problema a la hora de validar los campos de u n formulario. He buscado como hacerlo y lo que he encontrado me parecía muy fácil, de hecho me ha estado funcionando hasta hacer un par de días en que me cree una regla propia de validación en el fichero "validate-rules.xml".
En este fichero tengo definidas las reglas para cada campo del formulario. El campo que me da el problema es el campo "nif". Lo que quiero es que este campo sea obligatorio (validación 'required') y que sea un NIF valida (mi nueva regla 'nifvalid').
El problema que tengo aquí es que la primara de las reglas se ejecuta correctamente, pero al ejecutarse la segunda no funciona bien.
La segunda de las reglas esta definida en el fichero "validator-rules.xml" de la siguiente manera:
I esta regla llama, tal como esta configurada, llama al método "validateNif()":
public static boolean validateNif(HttpServletRequest request) { String nif = (String) request.getParameter("nif"); log.info("############## EL NIF ES: " + nif + "##############"); boolean result = GenericTools.isDniValid(nif); log.info("############## El resultado es: " + result + " ##############"); return result; }
Como podeis ver en el codigo Java he puesto trazas para ver si se ejecutaba el metodo y este se ejecuta correctament, con lo que en la segunda traza 'result' es true o false según el nif que le llega.
Entonces el principal problema es que parece que cuando hace el "return result;", este booleano no le llega (o al menos eso creo...) al fichero "validator-rules.xml" con lo que si yo introduzco un NIF incorrecto no se me da el error tal y como lo hace con la primera regla (si no introduzco NIF la validación va OK y da el error).
Hola,
Soy nuevo en Struts y me esto encontrando en un problema a la hora de validar los campos de u n formulario. He buscado como hacerlo y lo que he encontrado me parecía muy fácil, de hecho me ha estado funcionando hasta hacer un par de días en que me cree una regla propia de validación en el fichero "validate-rules.xml".
Lo que tengo es lo siguiente:
- En el fichero "validation.xml":
<form name="usuariForm">
...
<field property="nif" depends="required,nifvalid">
</field>
...
</form>
En este fichero tengo definidas las reglas para cada campo del formulario. El campo que me da el problema es el campo "nif". Lo que quiero es que este campo sea obligatorio (validación 'required') y que sea un NIF valida (mi nueva regla 'nifvalid').
El problema que tengo aquí es que la primara de las reglas se ejecuta correctamente, pero al ejecutarse la segunda no funciona bien.
La segunda de las reglas esta definida en el fichero "validator-rules.xml" de la siguiente manera:
<validator name="nifvalid" classname="mypackage.UtilsValidator"
method="validateNif"
methodParams="javax.servlet.http.HttpServletRequest"
msg="errors.nif"/>
I esta regla llama, tal como esta configurada, llama al método "validateNif()":
public static boolean validateNif(HttpServletRequest request)
{
String nif = (String) request.getParameter("nif");
log.info("############## EL NIF ES: " + nif + "##############");
boolean result = GenericTools.isDniValid(nif);
log.info("############## El resultado es: " + result + " ##############");
return result;
}
Como podeis ver en el codigo Java he puesto trazas para ver si se ejecutaba el metodo y este se ejecuta correctament, con lo que en la segunda traza 'result' es true o false según el nif que le llega.
Entonces el principal problema es que parece que cuando hace el "return result;", este booleano no le llega (o al menos eso creo...) al fichero "validator-rules.xml" con lo que si yo introduzco un NIF incorrecto no se me da el error tal y como lo hace con la primera regla (si no introduzco NIF la validación va OK y da el error).
Se os ocurre que es lo que puede estar pasando?
Gracias y un saludo.