web-dev-qa-db-fra.com

Thymeleaf - Comment comparer une chaîne avec un paramètre de requête en html dans la balise Thymeleaf "th: if"?

Comment comparer une chaîne avec un paramètre de requête en html dans la balise Thymeleaf "th: if"? en ce moment j'utilise ceci

<div class="error" th:if="${param.error == 'badCredentialsException'}" th:with="errorMsg=#{login.badCredentials}">                      
     <p class="errorMsg"><span th:text="${errorMsg}"></span></p>
</div>

Mais pas de chance, ça ne marche pas.

11
user3515080

Ça ne marche pas parce que param.error est un tableau de chaînes. Vous devez récupérer le premier élément du tableau (param.error[0]) pour obtenir la première valeur du paramètre (voir documentation ). En outre, vous pouvez accéder au paramètre de demande via la méthode d'objet de contexte Web #httpServletRequest.getParameter qui renvoie la première valeur lorsque le paramètre est à plusieurs valeurs (voir documentation ).

  1. Utilisation d'espaces de noms de contexte Web pour les attributs de demande

    <div class="error" th:if="${param.error[0] == 'badCredentialsException'}" th:with="errorMsg=#{login.badCredentials}">                      
        <p class="errorMsg"><span th:text="${errorMsg}"></span></p>
    </div>
    
  2. Utilisation de l'objet de contexte Web

    <div class="error" th:if="${#httpServletRequest.getParameter('error') == 'badCredentialsException'}" th:with="errorMsg=#{login.badCredentials}">                      
        <p class="errorMsg"><span th:text="${errorMsg}"></span></p>
    </div>
    
26
michal.kreuzman