Nunca llueve eternamente
El Cuervo

Archivos del día 31 de October del 2007

[Struts Validator] – Validaciones múltiples validwhen

Leo textualmente la guía de Struts Validator :

A few quick notes on the grammer.

  • All comparisons must be enclosed in parens.
  • Only two items may be joined with and or or
  • If both items to be compared are convertable to ints, a numeric comparison is done, otherwise a string comparison is done.

Atención a la segunda nota. Oh estúpido de mí, que entendía que únicamente se podían hacer validaciones del estilo

  • ( (a) and (b) )
  • ( (a) or (b) )

Pues esto no es cierto, porque aunque la guía no lo documenta, puedes concatenar recursivamente las veces que quieras, siempre cuidando de los paréntesis.

Por ejemplo, podemos sustituir "(a)" en las expresiones anteriores por "( (c) or (d) )", y así recursivamente hasta montar validaciones como:

 

<field property="bioseguridad.justificacionABCD" depends="validwhen">

      <arg0 key="bioseguridad.justificacionABDC" />

      <var>

            <var-name>test</var-name>

            <var-value>

(

      (

            (

                  (bioseguridad.experimentacionSeresHumanos != "1")

                  or

                  (*this* != null)

            )

            and

            (

                  (bioseguridad.utilizacionCelulasEmbrionarias != "1")

                  or

                  (*this* != null)

            )

      )

      and

      (

            (

                  (bioseguridad.utilizacionTejidosHumanos != "1")

                  or

                  (*this* != null)

            )

            and

            (

                  (bioseguridad.utilizacionDatosPersonales != "1")

                  or

                  (*this* != null)

            )

      )

)

            </var-value>

      </var>

</field>

 

Lo que le da al validwhen una potencia bastante mayor de la que yo utilizaba. 

[tags]struts, struts validator[/tags]

Comenta