web-dev-qa-db-ja.com

Thymeleaf-Thymeleafタグ「th:if」のHTMLで文字列をリクエストパラメータと比較する方法

Thymeleafタグ「th:if」でHTMLの文字列をリクエストパラメータと比較する方法は?今私はこれを使っています

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

しかし、運が悪い、それは機能していません。

11
user3515080

param.errorは文字列の配列であるため、機能しません。パラメータの最初の値を取得するには、配列の最初の要素(param.error[0])を取得する必要があります( documentation を参照)。さらに、パラメーターが複数値の場合に最初の値を返すWebコンテキストオブジェクトメソッド#httpServletRequest.getParameterを介してリクエストパラメーターにアクセスできます( documentation を参照)。

  1. リクエスト属性のWebコンテキスト名前空間の使用

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