Comment vérifier si une variable existe dans le template FreeMarker?
J'ai le template Freemarker qui contient un tas de masques dont les valeurs sont fournies lorsque le modèle est traité. Je veux conditionnellement inclure une partie du modèle si le nom d'utilisateur variable est fournie, quelque chose comme:
[#if_exists userName]
Hi ${userName}, How are you?
[/#if_exists]
Cependant, la FreeMarker manuel semble indiquer que if_exists est obsolète, mais je ne peux pas trouver un autre moyen d'y parvenir. Bien sûr, je pouvais simple un apport variable booléenne isUserName et de l'utiliser comme ceci:
[#if isUserName]
Hi ${userName}, How are you?
[/#if]
Mais si il y a un moyen de vérifier si le nom d'utilisateur existe alors je peux éviter l'ajout de cette variable supplémentaire.
Vous devez vous connecter pour publier un commentaire.
Pour vérifier si la valeur existe:
Ou à la norme freemarker syntaxe:
Pour vérifier si la valeur existe et n'est pas vide:
Celui-ci semble être un meilleur ajustement:
http://freemarker.sourceforge.net/docs/ref_builtins_expert.html
Aussi, je pense if_exists a été utilisé comme:
qui ne cassera pas si le nom d'utilisateur est null, le résultat si la valeur est null serait:
if_exists est maintenant obsolète et a été remplacé par l'opérateur par défaut ! comme dans
l'opérateur par défaut prend également en charge une valeur par défaut, tels que:
if
déclaration que l'op a demandé.Je pense que beaucoup de gens veulent être en mesure de vérifier pour voir si leur variable n'est pas vide, comme si elle existe. Je pense que la vérification de l'existence et de la vacuité est une bonne idée, dans beaucoup de cas, et rend le modèle plus robuste et moins sujettes à des erreurs stupides. En d'autres termes, si vous assurez-vous que votre variable n'est pas nulle ET n'est pas vide avant de l'utiliser, alors votre modèle devient plus souple, parce que vous pouvez soit lancer une variable de type null ou une chaîne vide en elle, et il travaille de la même façon dans les deux cas.
Disons que vous voulez vous assurer que
p
est plus que juste un espace. Ensuite, vous pouvez le découper avant de vérifier pour voir si ilhas_content
.Mise à JOUR
S'il vous plaît ignorer ma suggestion --
has_content
est tout ce qui est nécessaire, comme c'est un null vérifier avec la case vide. Fairep?? && p?has_content
est équivalent àp?has_content
, de sorte que vous pouvez simplement utiliserhas_content
.Vous ne pouvez pas utiliser
??
pour gérer les valeurs manquantes, l'ancienne syntaxe est: