Foros del Web » Programación para mayores de 30 ;) » Java »

Struts2: Uso de validation.xml para un checkBoxList

Estas en el tema de Struts2: Uso de validation.xml para un checkBoxList en el foro de Java en Foros del Web. Hola. Se me ha presentado el siguiente problema y me he quedado atascado: Tengo un conjunto de checkbox dispuestos en forma de arbol, cada uno ...
  #1 (permalink)  
Antiguo 01/12/2010, 11:20
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Struts2: Uso de validation.xml para un checkBoxList

Hola. Se me ha presentado el siguiente problema y me he quedado atascado:

Tengo un conjunto de checkbox dispuestos en forma de arbol, cada uno con el mimso nombre de checkbox (name="listadoChecks") y value diferente.

En el struts-config, para el formulario dado, tengo definida la property="listadoChecks" como String[] (un array de Strings)

Lo que quiero validar es que haya al menos un check marcado dentro del listado. He probado con depends="required" para la property="listadoChecks", pero no funciona ya que lo que busca "required" es que el value no sea "", y no es este el caso.

¿Hay alguna forma de validar el tamaño del array a través de la property usando validation.xml? Si es así, cómo se haría?

Un saludo
  #2 (permalink)  
Antiguo 01/12/2010, 14:15
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Struts2: Uso de validation.xml para un checkBoxList

http://struts.apache.org/2.2.1/docs/...using-xml.html

Cita:
<validator type="fieldexpression">
<param name="fieldname">personBean.carModels</param>
<param name="expression"><![CDATA[personBean.carModels.length > 0]]></param>
<message>You must select at least one car model.</message>
</validator>
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 02/12/2010, 03:02
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Struts2: Uso de validation.xml para un checkBoxList

Gracias Xerelo. Al final me confundí, era struts 1.2 :S

El fieldexpression no me vale, tendré que probar con validwhen, pero no sé como hacer. Ah tampoco tengo name en el field, lo que tengo es la property definida en struts-config.
  #4 (permalink)  
Antiguo 02/12/2010, 07:28
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Struts2: Uso de validation.xml para un checkBoxList

Hasta ahora lo he intentado así:

<field name="listadoChecks" indexedListProperty="listadoChecks" depends="validwhen">
<arg0 key="errors.message" />
<var>
<var-name>test</var-name>
<var-value>((listadoChecks[].length > 0) and (*this* != null))</var-value>
</var>
</field>

Pero no he logrado validar.

En la jsp se generan numerosos inputs tipo checkbox con ese name y diversos values, en el struts-config tengo la siguiente propiedad <form-property name="listadoChecks" type="java.lang.String[]"/> que es la que se usa para volcar los values en los checks.

Pero todavía no he logrado hacerlo funcionar.

¿Alguien tiene idea de como debería proceder?
  #5 (permalink)  
Antiguo 02/12/2010, 12:30
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: Struts2: Uso de validation.xml para un checkBoxList

Hola Tu,

Ya lo intentaste asi??

<field property="listadoChecks" depends="required,minlength">
<arg key="formadinamica.listadoChecks" name="required" />
<var>
<var-name>minlength</var-name>
<var-value>1</var-value>
</var>
</field>

Saludos!
  #6 (permalink)  
Antiguo 03/12/2010, 03:08
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Struts2: Uso de validation.xml para un checkBoxList

Eso que has puesto funciona para definir una longitud minima del texto que ingreses en un campo asociado a la property, e iría bien si la property fuese un String, pero mi problema está en que la property es un String[], y al parecer no reconoce bien la length de la property.
  #7 (permalink)  
Antiguo 03/12/2010, 11:04
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: Struts2: Uso de validation.xml para un checkBoxList

Cita:
Iniciado por Fuzzylog Ver Mensaje
Eso que has puesto funciona para definir una longitud minima del texto que ingreses en un campo asociado a la property, e iría bien si la property fuese un String, pero mi problema está en que la property es un String[], y al parecer no reconoce bien la length de la property.
Pues yo lo probe y si funciona, si no seleccionas ningun check te pone el mensaje de error que le hayas puesto.

Solo que despues tendrias un problema, tendras que resetear la forma para que te siga valiendo esa validacion, pero como utilizas formas dinamicas por el momento no recuerdo como se hace el reset() ya que no cuentas con ningun ActionForm.

Saludos!
  #8 (permalink)  
Antiguo 06/12/2010, 14:48
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Struts2: Uso de validation.xml para un checkBoxList

Pues estamos en las mismas. Lo cierto es que todas las soluciones que he probado no han funcionado, y ya no sé si para este caso concreto conviene hacer la validación de forma directa en el archivo .java que controla la acción.
  #9 (permalink)  
Antiguo 06/12/2010, 16:08
Usuario no validado
 
Fecha de Ingreso: junio-2008
Mensajes: 386
Antigüedad: 15 años, 9 meses
Puntos: 10
Respuesta: Struts2: Uso de validation.xml para un checkBoxList

Hola, mira yo probe con esto y funciono al 100%

En el archivo validation.xml tengo esto:
<field property="listadoChecks" depends="required">
<arg key="formadinamica.listadoChecks" resource="false" />
</field>


Y en el struts-config.xml tengo esto:

<form-bean name="datosDinamicos" type="org.apache.struts.validator.DynaValidatorFor m">
<form-property name="nombre" type="java.lang.String" />
<form-property name="apellidoPaterno" type="java.lang.String" />
<form-property name="listadoChecks" type="java.lang.String[]" />
</form-bean>

<action path="/formaDinamica" type="struts.action.DatosDinamicosAction" name="datosDinamicos" validate="true" scope="request" input="/jsp/datosDinamicos.jsp" />

Y funciono!!

Checalo y ahi nos avisas.

Saludos!
  #10 (permalink)  
Antiguo 08/12/2010, 08:13
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 7 meses
Puntos: 188
Respuesta: Struts2: Uso de validation.xml para un checkBoxList

Pues a mi no me funciona, quizás será porque yo ahí le estoy metiendo los values de forma dinámica con dwr. Ya lo he intentado de varias maneras posibles pero no he logrado nada.

Etiquetas: struts
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:54.