2009-05-15 6 views
55

E.g.Comment puis-je vérifier si un attribut est défini (pas null et pas une chaîne vide) avec jstl?

<c:if test="${post}"> 
    <h3>${post.title}</h3> 
</c:if> 
+1

bien que si 'title' n'existe pas (.-à-dire la propriété ne fait pas partie à cette variable/haricot), vous voulez attraper le' javax.el.PropertyNotFoundException', voir la question ' L'attribut de vérification existe dans JSP' sur http://stackoverflow.com/questions/2522562/checking-attribute-exists-in-jsp –

+0

Votre question devrait probablement être reformulée en "vérifier si un attribut est ** réglé **" (non null et pas une chaîne vide) –

Répondre

103

Utilisez le mot-clé vide

<c:if test="${not empty post}"> 
    <h3>${post.title}</h3> 
</c:if> 
+2

C'est certainement le meilleur moyen. Je crois qu'il vérifie également pour «null». –

+0

Ceci est trompeur. Si l'attribut est une liste, il est défini et vide, ce conditionnel renvoie true. – stepanian

10

Vous pouvez également utiliser '! au lieu « non »:

<c:if test="${!empty post}"> 
    <h3>${post.title}</h3> 
</c:if>