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