Thymeleaf-как сравнить строку с параметром запроса в html в теге Thymeleaf "th:if"?

как сравнить строку с параметром запроса в html в теге Thymeleaf "th: if" ? прямо сейчас я использую это

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

но не повезло, он не работает.

1 ответов


Это не работает, потому что param.error - это массив строк. Вы должны получить первый элемент массива (param.error[0]), чтобы получить первое значение параметра (см. документация). Кроме того, вы можете получить доступ к параметру запроса через метод объекта веб-контекста #httpServletRequest.getParameter который возвращает первое значение, когда параметр многозначен (см. документация).

  1. использование пространств имен веб-контекста для запроса атрибуты

    <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. использование объекта веб-контекста

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