Accéder à des valeurs constantes à partir d'un Apache Velocity modèle?
Est-il possible d'accéder à une valeur constante (c'est à dire un public static final variable définie dans une classe Java) à partir d'un modèle de Vitesse?
J'aimerais être capable d'écrire quelque chose comme ceci:
#if ($a lt Long.MAX_VALUE)
mais ce n'est apparemment pas la bonne syntaxe.
Vous devez vous connecter pour publier un commentaire.
Il y a un certain nombre de façons.
1) Vous pouvez mettre directement les valeurs dans le contexte.
2) Vous pouvez utiliser le FieldMethodizer à faire tous les champs statiques dans une classe disponible.
3) Vous pouvez utiliser un personnalisé Uberspect de mise en œuvre qui inclut public static champs dans l'ordre de recherche.
4) Vous pouvez utiliser le FieldTool de VelocityTools.
Je recommande 1 pour quelques valeurs, 2 pour quelques classes, 3 pour beaucoup de classes et de valeurs, et 4 si vous utilisez déjà VelocityTools et serait autrement utiliser 1 ou 2.
Vitesse ne peut se servir de quelque chose qu'il trouve dans son contexte, par exemple, après
Vous ne pouvez pas utiliser la statique, ou d'accéder à des membres statiques de choses dans la Vitesse du contexte en raison de la façon dont ses travaux de recherche (voir la Vitesse de Recherche de propriété règles). La meilleure chose à faire est d'ajouter de la valeur à vérifier de manière explicite dans votre contexte.
Édition 6 octobre sur la seconde vue, il semble être possible d'accéder à des membres statiques. Voir la vitesse Guide du développeur - Support pour les "Classes Statiques" pour plus d'informations. Je n'ai pas essayé ceci, cependant.