web-dev-qa-db-fra.com

Vérifiez si le paramètre existe dans le langage d'expression

<c:if test="${param.username}" >
</c:if>

Comment puis-je vérifier si param.username existe ??

42
Borut Flis

Utilisez le not empty vérifier.

<c:if test="${not empty param.username}" >
</c:if>

Modifier: si vous avez un paramètre de la forme ?username (aucune valeur), il est plus sûr d'utiliser ${param.username ne null}

64
adarshr

Si vous voulez vérifier si le paramètre existe, testez simplement s'il n'est pas nul, dans votre cas:

<c:if test="${param.username != null}"></c:if>



Explication plus large:

Si vous souhaitez vérifier:

  • si yourParam existe/n'est pas nul:

    <c:if test="${param.yourParam != null}"></c:if>

  • si yourParam n'existe pas/est nul

    <c:if test="${param.yourParam == null}"></c:if>

  • si yourParam n'est pas vide (chaîne non vide et non nulle)

    <c:if test="${!empty param.yourParam}"></c:if>

  • si yourParam est vide (chaîne vide ou null)

    <c:if test="${empty param.yourParam}"></c:if>

  • si yourParam est évalué à "vrai"

    <c:if test="${yourParam}"></c:if>

  • si yourParam est évalué à 'false' (chaîne autre que 'true')

    <c:if test="${!yourParam}"></c:if>

39

Si je peux ajouter un commentaire ...

Pour tester si le paramètre de requête "nom d'utilisateur" n'existe pas dans la page JSP "a-jsp.jsp", nous pouvons écrire une clause "if" dans la page "a-jsp.jsp":

<c:if test="${empty param['username']>
...
</c:if>

Nous passerons par cette clause "if" si l'URL demandée est:

http://server/webapp/a-jsp.jsp

ou

http://server/webapp/a-jsp.jsp?username=

Nous ne le ferons pas si l'URL demandée est:

http://server/webapp/a-jsp.jsp?username=foo

4
Léa Massiot