Thymeleaf:th:text 仅当不为空时?
Thymeleaf: th:text only if not null?
我有类似下面的内容,如果用户之前输入了错误的凭据,这当然有效。
但是如果我直接去我的登录失败 url /login?error
例如没有任何以前不正确的登录,session[SPRING_SECURITY_LAST_EXCEPTION]
当然是 null
我得到一个讨厌的404.
<span th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span>
问题:
是否有像下面这样的处理器(大部分时间写和读太长),还是我应该自己动手?
<span th:text="${session[SPRING_SECURITY_LAST_EXCEPTION] != null ? session[SPRING_SECURITY_LAST_EXCEPTION].message : #messages.msg('AbstractUserDetailsAuthenticationProvider.badCredentials')}">
Invalid credentials
</span>
您可以使用th:if语句:
<span th:if="${session[SPRING_SECURITY_LAST_EXCEPTION].message}" th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span>
只有存在值时才会显示此行。
编辑 1:
额外检查:
<span th:if="${session[SPRING_SECURITY_LAST_EXCEPTION] != null and session[SPRING_SECURITY_LAST_EXCEPTION].message != null}" th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span>
试试这个:
<span th:if="${session[SPRING_SECURITY_LAST_EXCEPTION].message != null}">
<span th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span>
</span>
试试这个代码,它更优化:
${session['SPRING_SECURITY_LAST_EXCEPTION']?.message}
? - 检查资源是否不为空
在您的控制器中将空字符串变量设置为
String nullvalue="";
model.addAttribute("nullvalue",nullvalue);
model.addAttribute("entity",entity);
那么在你看来 class 就像百里香
<td data-th-if="${entity.field != nullvalue}">ok</td>
我有类似下面的内容,如果用户之前输入了错误的凭据,这当然有效。
但是如果我直接去我的登录失败 url /login?error
例如没有任何以前不正确的登录,session[SPRING_SECURITY_LAST_EXCEPTION]
当然是 null
我得到一个讨厌的404.
<span th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span>
问题:
是否有像下面这样的处理器(大部分时间写和读太长),还是我应该自己动手?
<span th:text="${session[SPRING_SECURITY_LAST_EXCEPTION] != null ? session[SPRING_SECURITY_LAST_EXCEPTION].message : #messages.msg('AbstractUserDetailsAuthenticationProvider.badCredentials')}">
Invalid credentials
</span>
您可以使用th:if语句:
<span th:if="${session[SPRING_SECURITY_LAST_EXCEPTION].message}" th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span>
只有存在值时才会显示此行。
编辑 1:
额外检查:
<span th:if="${session[SPRING_SECURITY_LAST_EXCEPTION] != null and session[SPRING_SECURITY_LAST_EXCEPTION].message != null}" th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span>
试试这个:
<span th:if="${session[SPRING_SECURITY_LAST_EXCEPTION].message != null}">
<span th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span>
</span>
试试这个代码,它更优化:
${session['SPRING_SECURITY_LAST_EXCEPTION']?.message}
? - 检查资源是否不为空
在您的控制器中将空字符串变量设置为
String nullvalue="";
model.addAttribute("nullvalue",nullvalue);
model.addAttribute("entity",entity);
那么在你看来 class 就像百里香
<td data-th-if="${entity.field != nullvalue}">ok</td>