Instinctivement pour tester l’égalité de deux variables sous Maven, moi j’écrirai :
<j:if test="${var1 == var2}">
<echo message="var1 égale var2" />
</j:if>
Mais visiblement sous Maven, ça ne marche pas comme ça ! Le code suivant renverra un résultat pour le moins aléatoire. Du coup, en réfléchissant et en parcourant la Toile (qui est très pingre à ce sujet), je me suis mis à écrire :
<j:if test="${var1.equals(var2)}">
<echo message="var1 égale var2" />
</j:if>
<j:if test="${var1.equals('test')}">
<echo message="var1 égale 'test'" />
</j:if>
Et la, ahah : ça marche ! Pour comparer deux variables ou une variable et une valeur.
Pour comparer deux valeurs, il faut se rabattre sur le classique :
<j:if test="${'valeur1' == 'valeur2'}">
<echo message="valeur1 égale valeur2" />
</j:if>
Et pour comparer deux variables dont la première contient des points (ex : « ma.variable ») : bah on peut pas. Il faut renommer sa variable sans point. Bizarre, mais c’est le seule solution que j’ai trouvé pour l’instant.
<j:set var="maVariable" value="${ma.variable}" />
<j:if test="${maVariable.equals('test')}">
<echo message="ma.variable égale 'test'" />
</j:if>
Et voilà le travail ! Pour information, j’utilise ici le plugin jelly:core, je l’ai donc déclaré au début de mon fichier pom.xml :
<project xmlns:j="jelly:core">...</project>



