Thymeleaf - How to compare string with request parameter in html in Thymeleaf tag "th:if"?

html, spring-mvc, thymeleaf

Solution

It's not working because `param.error` is array of strings. You must retrieve first element of array (`param.error[0]`) to get first value of parameter (see documentation). Besides that you can access request parameter via Web context object method `#httpServletRequest.getParameter` that returns first value when parameter is multivalued (see documentation).

Usage of Web context namespaces for request attributes

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

Usage of Web context object

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

Problem

How to compare string with request parameter in html in Thymeleaf tag "th:if" ? right now i am using this ``` <div class="error" th:if="${param.error == 'badCredentialsException'}" th:with="errorMsg=#{login.badCredentials}"> <p class="errorMsg"><span th:text="${errorMsg}"></span></p> </div> ``` But no luck, it is not working.

Original source