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>