2017-04-08 3 views
0

J'essaie de définir une variable sur null dans Velocity. J'essaie:Impossible de définir Nulll dans Velocity Template

#set ($acessSpeed = null) 

Je lisais le wiki de support de vélocité nulle. Il dit que nous pouvons définir une valeur à null de cette façon. https://wiki.apache.org/velocity/VelocityNullSupport

Mais quand je l'essaye, je reçois une erreur « Rencontrés « null » à .... »

Le problème que j'ai j'ai un énorme modèle avec plusieurs si blocs, qui sont exécutées si la condition est satisfaite. Donc, à la fin de chaque bloc, je dois définir la valeur de accessSpeed ​​sur null.

#if (some condition) 
    access speed value set here. 
. 
. 
. 
#end 
// I need to set the access speed value to null here. 
#if (some other condition) 
    access speed value to be set to something again. 
. 
. 
. 
#end 

je peux utiliser différentes variables pour chaque bloc, mais si je me demandais s'il y avait un moyen plus simple de le faire.

Toutes les suggestions seraient utiles.

+0

Cette page est sur * * suggestions, pas est pris en charge est en fait avec cette syntaxe –

+0

double possible de [nulls de vitesse et de chaînes vides] (http://stackoverflow.com/questions/12263548/velocity-nulls -and-empty-strings) –

+0

@ cricket_007 Pas un doublon, pas de celui-ci au moins. –

Répondre

1

Cela dépend de votre configuration. Pour faire ce dont vous avez besoin, vous devez configurer la vitesse avec:

directive.set.null.allowed = true 

Ensuite, vous pouvez définir votre variable à null avec:

#set($foo = $null) 

où $ null est juste une variable non définie.

Sinon, si le seul but est tester la variable, une astuce pratique consiste à définir sa valeur sur false.

#set($foo = false) 
#if($foo) this will be displayed #end 
+0

@Calude Brisson Merci pour l'info. Est-ce que je mets cette déclaration de directive au début du modèle? –

+0

Non, il s'agit d'une valeur de configuration appartenant au fichier 'velocity.properties'. Alternativement, vous pouvez le configurer de façon pro grammatique en utilisant 'setProperty()' sur le Velocity ou RuntimeInstance que vous utilisez, * avant * l'initialisation. –

+0

C'était une question assez bête. J'aurais dû regarder ça! Merci pour l'aide. –