J'ai une carte dont la clé et la valeur et les classes personnalisées. La classe de clé est appelée Position
et est instancié avec deux int (par exemple new Position(2, 4)
.FreeMarker: Vérifier si la valeur de la carte est nulle
je me suis débarrassé de cette classe de position et converti la carte à un SimpleHash
afin de l'utiliser avec Freemarker. J'ai maintenant une SimpleHash
dont la clé est une chaîne reconfiguré valeurs de position (par exemple "2 4"
) et dont la valeur est soit null
ou un
classe Lot
(personnalisée). dans le modèle que je dois vérifier si la valeur d'un élément donné dans le SimpleMap (passé comme map
) est soit null, soit une instance de Lot
<#list mapMinY..mapMaxY as y>
<tr>
<#list mapMinX..mapMaxX as x>
<td>
<div>
<!-- Check if map[x + " " + y] is null -->
${x}, ${y}
</div>
</td>
</#list>
</tr>
</#list>
Comment faire?
Ici, vous n'avez pas besoin d'utilitaires personnalisés. FreeMarker a quelques opérateurs dédiés pour traiter des valeurs nulles/manquantes (voir ma réponse ci-dessous). (La vérification '== true' semble aussi plutôt étrange ...)' utilClass.isNull' ne pourrait pas non plus indiquer une valeur nulle à partir d'une clé manquante, car elle obtient simplement ce que 'Map.get' renvoie, ce qui est' null Dans les deux cas. – ddekany