Struts Validator validwhen con 3 campos
Hola, tengo un formulario con 3 campos de tipo Multibox donde el usuario puede seleccionar de los 3 campos, pero debe seleccionar al menos uno en total. La estructura es del tipo:
//Situaciones Juego Ataque
<html:multibox property="sjuegoa" value="1x0"/>1x0
<html:multibox property="sjuegoa" value="1x1"/>1x1
<html:multibox property="sjuegoa" value="1x2"/>1x2
//Situaciones Juego Defensa
<html:multibox property="sjuegod" value="1x0"/>1x0
<html:multibox property="sjuegod" value="1x1"/>1x1
<html:multibox property="sjuegod" value="1x2"/>1x2
//Situaciones Juego Mixto
<html:multibox property="sjuegom" value="1x0"/>1x0
<html:multibox property="sjuegom" value="1x1"/>1x1
<html:multibox property="sjuegom" value="1x2"/>1x2
He visto que Struts posee "validwhen", he visto sus ejemplos pero mi código no funciona del todo bien. Para probarlo, he intentado verificar al menos que Ataque o Defensa no esté nulo.
<field property="sjuegoa" depends="validwhen">
<arg0 name="validwhen" key="campo.situaciones"/>
<var>
<var-name>test</var-name>
<var-value>(sjuegod == null) and (*this* == null)</var-value>
</var>
</field>
<field property="sjuegod">
<arg0 key="campo.sjuegod"/>
</field>
Con esto me detecta lo que quiero pero me aparece el siguiente error en consola:
line 1:19: expecting EOF, found 'and'
at antlr.Parser.match(Parser.java:213)
at org.apache.struts.validator.validwhen.ValidWhenParser.expression(ValidWhenParser.java:370)
Si pongo paréntesis (se supone que sigue igual) ya no aparece el error en consola pero tampoco me muestra el mensaje de campos vacÃos:
<var-value>((sjuegod == null) and (*this* == null))</var-value>
Por probar, he probado por si los campos sjuegoa y sjuegod al ser multibox vinieran como "":
<var-value>((sjuegod.equals("")) and (*this*.equals("")))</var-value>
line 1:3: unexpected token: sjuegod.equals
at org.apache.struts.validator.validwhen.ValidWhenParser.field(ValidWhenParser.java:300)
¿Alguna idea? Uso Struts 1.2.4
//Situaciones Juego Ataque
<html:multibox property="sjuegoa" value="1x0"/>1x0
<html:multibox property="sjuegoa" value="1x1"/>1x1
<html:multibox property="sjuegoa" value="1x2"/>1x2
//Situaciones Juego Defensa
<html:multibox property="sjuegod" value="1x0"/>1x0
<html:multibox property="sjuegod" value="1x1"/>1x1
<html:multibox property="sjuegod" value="1x2"/>1x2
//Situaciones Juego Mixto
<html:multibox property="sjuegom" value="1x0"/>1x0
<html:multibox property="sjuegom" value="1x1"/>1x1
<html:multibox property="sjuegom" value="1x2"/>1x2
He visto que Struts posee "validwhen", he visto sus ejemplos pero mi código no funciona del todo bien. Para probarlo, he intentado verificar al menos que Ataque o Defensa no esté nulo.
<field property="sjuegoa" depends="validwhen">
<arg0 name="validwhen" key="campo.situaciones"/>
<var>
<var-name>test</var-name>
<var-value>(sjuegod == null) and (*this* == null)</var-value>
</var>
</field>
<field property="sjuegod">
<arg0 key="campo.sjuegod"/>
</field>
Con esto me detecta lo que quiero pero me aparece el siguiente error en consola:
line 1:19: expecting EOF, found 'and'
at antlr.Parser.match(Parser.java:213)
at org.apache.struts.validator.validwhen.ValidWhenParser.expression(ValidWhenParser.java:370)
Si pongo paréntesis (se supone que sigue igual) ya no aparece el error en consola pero tampoco me muestra el mensaje de campos vacÃos:
<var-value>((sjuegod == null) and (*this* == null))</var-value>
Por probar, he probado por si los campos sjuegoa y sjuegod al ser multibox vinieran como "":
<var-value>((sjuegod.equals("")) and (*this*.equals("")))</var-value>
line 1:3: unexpected token: sjuegod.equals
at org.apache.struts.validator.validwhen.ValidWhenParser.field(ValidWhenParser.java:300)
¿Alguna idea? Uso Struts 1.2.4
No hace falta que respondais ya que al final opté por validarlo de otra manera y conseguà lo que querÃa.
Hola, yo tengo un problema similar, solo que yo tengo 2 multibox y necesito que sean excluyentes, ya se que para eso existen los radio, pero como mi jsp tiene una tabla y por cada renglon tienen que aparecer 2 multibox o radio , lo que pasa con los radio es que como es la misma propiedad para toda mi pagina se activa un solo radio, sin importar los renglones que tenga. Y con los multibox, sucede lo contrario que se puede activar los dos.
Les agradecere que me puen orientar.
saludos
gracias
Les agradecere que me puen orientar.
saludos
gracias
