use*_*080 11 html spring-mvc thymeleaf
如何在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>
Run Code Online (Sandbox Code Playgroud)
但没有运气,它不起作用.
mic*_*man 26
它不起作用,因为param.error是字符串数组.您必须检索array(param.error[0])的第一个元素以获取参数的第一个值(请参阅文档).除此之外,您还可以通过Web上下文对象方法访问请求参数#httpServletRequest.getParameter,该方法在参数为多值时返回第一个值(请参阅文档).
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>
Run Code Online (Sandbox Code Playgroud)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>
Run Code Online (Sandbox Code Playgroud)对于 Thymeleaf 3,我通常使用#request(的缩写形式#httpservletrequest),#strings.equals()为此,它看起来像这样:
<div th:if="${#strings.equals(#request.getParameter('error'), 'badCredentialsException')}"></div>
Run Code Online (Sandbox Code Playgroud)