Velocity, Quelle est la façon la plus efficace de vérifier si une chaîne est vide et non nulle
j'ai souvent des cas où une valeur de chaîne est absente et/ou vide. Est-ce la meilleure façon de tester cette condition?
#if( $incentive.disclaimer && $!incentive.disclaimer != '' )
$incentive.disclaimer
#end
3 réponses
si vous voulez simplement que Velocity affiche la valeur si elle existe, ou rien si elle est absente, a calme de référence par lui-même fera l'affaire:
$!incentive.disclaimer
Si vous êtes désireux explicitement test de vide, StringUtilsApache Commons Lang peut aider. D'abord l'ajouter à votre Contexte (référence ici):
context.put("StringUtils", StringUtils.class);
bien que si vous êtes sur une ancienne version de Velocity, il peut ne pas aimer la référence de classe, donc vous pouvez ajouter une instance à la place:
context.put("StringUtils", new StringUtils());
alors vous pouvez appeler son isEmpty méthode de votre Vitesse modèle:
#if($StringUtils.isEmpty($incentive.disclaimer))
## logic here...
#end
si vous voulez que whitespace soit considéré comme vide, il y a aussi isBlank.
Pour les cas où $!incentive.disclaimer
ne convient pas http://wiki.apache.org/velocity/CheckingForNull suggère un court de solution:
#if( "$!car.fuel" != "" )
Vous souhaitez Calme Notation de Référence: $!incitation.avertissement
Bla bla $!incentive.disclaimer.
Si $d'incitatif.avertissement null ou "", la Vitesse de rendu:
Bla bla .
voir la section du Guide officiel: https://velocity.apache.org/engine/devel/user-guide.html#quiet-reference-notation
Parfois, vous avez besoin d' #si
cas le plus commun quand vous voulez #if: votre variable n'est qu'une partie d'un plus gros morceau de texte et que vous ne voulez pas l'afficher si la variable est vide. Ensuite, vous avez besoin de ceci:
#if($incentive.disclaimer && !$incentive.disclaimer.empty)
Please read our incentive disclaimer:
$incentive.disclaimer
#end