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.
Ç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 ).
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>
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>