我有类似下面的内容,如果用户先前输入了错误的凭据,那当然可以工作。
但是,如果我直接进入登录失败网址/login?error,例如之前没有任何不正确的登录信息,那session[SPRING_SECURITY_LAST_EXCEPTION]当然可以,null并且我会收到一个讨厌的 404 。
/login?error
session[SPRING_SECURITY_LAST_EXCEPTION]
null
<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>