traduccion studio software nuskin velocity

velocity - studio - Velocidad, ¿cuál es la forma más eficiente de verificar si una cadena está vacía y no es nula?



velocity studio (3)

A menudo tengo casos en que un valor de cadena está ausente y / o vacío. ¿Es esta la mejor manera de probar esta condición?

#if( $incentive.disclaimer && $!incentive.disclaimer != '''' ) $incentive.disclaimer #end


Desea la notación de referencia silenciosa: $! Incentive.disclaimer

Bla bla $!incentive.disclaimer.

Si $ incentive.disclaimer es nulo o "" , Velocity mostrará:

Bla bla .

Consulte la sección de la guía oficial: https://velocity.apache.org/engine/devel/user-guide.html#quiet-reference-notation

A veces necesitas #IF

El caso más común cuando quiere #if: su variable es solo una parte de un fragmento de texto más grande y no desea mostrarla si la variable está vacía. Entonces necesitas esto:

#if($incentive.disclaimer && !$incentive.disclaimer.empty) Please read our incentive disclaimer: $incentive.disclaimer #end



Si solo desea que Velocity muestre el valor si existe, o no muestre nada si está ausente, una referencia silenciosa por sí sola hará el truco:

$!incentive.disclaimer

Si desea probar explícitamente el vacío, StringUtils de Apache Commons Lang puede ayudarlo. Primero agréguelo a su Contexto (referencia here ):

context.put("StringUtils", StringUtils.class);

Aunque si está en una versión anterior de Velocity, puede que no le guste la referencia de clase, por lo que puede agregar una instancia en su lugar:

context.put("StringUtils", new StringUtils());

Luego puedes llamar a su método isEmpty desde tu plantilla de Velocity:

#if($StringUtils.isEmpty($incentive.disclaimer)) ## logic here... #end

Si desea que los espacios en blanco se traten como vacíos, también hay un isBlank .