problemas con validator.xml
Publicado por Ator (1 intervención) el 02/01/2007 20:09:28
Hola, mi problema es el siguiente:
Tengo un form que desciende de ValidatorForm, hay tengo definidas unas propiedades, en este caso un email un password.
Creo mi jsp para que metan el email y password (tipico) y hago un submit de ese form, la forma de este fichero es el siguiente:
<html:form action="join.do?action=saveJoinAction" focus="fname" onsubmit="return validateJoinform(this);">
<table align="center">
<tr align="center">
<td><H1><fmt:message key="join.message"/></H1></td>
</tr>
<tr align="center">
<td>
<table align="center">
<tr>
<td align="right">
<fmt:message key="join.fname"/>
</td>
<td align="left">
<html:text property="fname" size="15" maxlength="30"/>
<html:errors property="fname" />
</td>
</tr>
<tr>
<td align="right">
<fmt:message key="join.lname"/>
</td>
<td align="left">
<html:text property="lname" size="15" maxlength="30"/>
<html:errors property="email" />
</td>
</tr>
<tr>
<td align="right">
<fmt:message key="login.email"/>
</td>
<td align="left">
<html:text property="email" size="15" maxlength="30" />
<html:errors property="email" />
</td>
</tr>
<tr>....
En mi fichero de struts-config defino los pluggins del validatio.xml y del validation-rules.xml y en el validation.xml meto la referenci a las propiedades que quiero validar:
<form name="joinform">
<field property="email"
depends="required,email">
<arg key="error.email.required"/>
</field>....
En el struct-config.xml la opción en el action de validar la marco a true, aunque la ponga o no sigue sin funcionar.
Total que al hacer un submit del fichero no me hace la validación. Indagando un poco más he descubierto la causa de que no valide y es la siguiente:
cuando se crea el javascript en runtime de validación se crea un método llamado, xj en mi caso:
function joinform_required () {
this.a0 = new Array("email", "email is required. is required.", new Function ("varName", " return this[varName];"));
}
El problema está que cuando se supone que tiene que llamar a este método hace la siguien llamada:
oRequired = new required();
cuando en realidad la llamada debería ser
oRequired = new joinform_required();
Y por eso no me funciona la validación. He visto que se suele poner
una etiqueta <html:javascript forname="nombre del formulario"/>
que me imagino que es la que deberia indicar que se llame a joinform_required() en lugar
de required() a secas, pero aunque ponga eso sique sin llamar al método correcto
,vamos al joinform_required(). Alquien sabe como solucionar esto.
Saludos.
Tengo un form que desciende de ValidatorForm, hay tengo definidas unas propiedades, en este caso un email un password.
Creo mi jsp para que metan el email y password (tipico) y hago un submit de ese form, la forma de este fichero es el siguiente:
<html:form action="join.do?action=saveJoinAction" focus="fname" onsubmit="return validateJoinform(this);">
<table align="center">
<tr align="center">
<td><H1><fmt:message key="join.message"/></H1></td>
</tr>
<tr align="center">
<td>
<table align="center">
<tr>
<td align="right">
<fmt:message key="join.fname"/>
</td>
<td align="left">
<html:text property="fname" size="15" maxlength="30"/>
<html:errors property="fname" />
</td>
</tr>
<tr>
<td align="right">
<fmt:message key="join.lname"/>
</td>
<td align="left">
<html:text property="lname" size="15" maxlength="30"/>
<html:errors property="email" />
</td>
</tr>
<tr>
<td align="right">
<fmt:message key="login.email"/>
</td>
<td align="left">
<html:text property="email" size="15" maxlength="30" />
<html:errors property="email" />
</td>
</tr>
<tr>....
En mi fichero de struts-config defino los pluggins del validatio.xml y del validation-rules.xml y en el validation.xml meto la referenci a las propiedades que quiero validar:
<form name="joinform">
<field property="email"
depends="required,email">
<arg key="error.email.required"/>
</field>....
En el struct-config.xml la opción en el action de validar la marco a true, aunque la ponga o no sigue sin funcionar.
Total que al hacer un submit del fichero no me hace la validación. Indagando un poco más he descubierto la causa de que no valide y es la siguiente:
cuando se crea el javascript en runtime de validación se crea un método llamado, xj en mi caso:
function joinform_required () {
this.a0 = new Array("email", "email is required. is required.", new Function ("varName", " return this[varName];"));
}
El problema está que cuando se supone que tiene que llamar a este método hace la siguien llamada:
oRequired = new required();
cuando en realidad la llamada debería ser
oRequired = new joinform_required();
Y por eso no me funciona la validación. He visto que se suele poner
una etiqueta <html:javascript forname="nombre del formulario"/>
que me imagino que es la que deberia indicar que se llame a joinform_required() en lugar
de required() a secas, pero aunque ponga eso sique sin llamar al método correcto
,vamos al joinform_required(). Alquien sabe como solucionar esto.
Saludos.
Valora esta pregunta


0