2015-07-20 2 views
0

У меня есть что-то вроде ниже, что, конечно же, работает, если пользователь ранее вводил свои неправильные учетные данные.Thymeleaf: th: текст только если не null?

Однако, если я непосредственно перейти к моему логину неудача URL /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> 

ответ

2

Вы можете использовать й: если заявление:

<span th:if="${session[SPRING_SECURITY_LAST_EXCEPTION].message}" th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span> 

Это будет только отображать эту строку, если есть значение присутствует.

EDIT 1:

Extra проверка:

<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> 
+0

если 'session [SPRING_SECURITY_LAST_EXCEPTION]' имеет значение null, он будет вызывать 'NPE' на' .message' – Incognito

+0

Не в том случае, если он равен нулю, тогда если оператор FALSE, то th: текст не получается. – Aeseir

+0

Это то, что вы написали 'th: if = '$ {session [SPRING_SECURITY_LAST_EXCEPTION] .message}" ' – Incognito

0

Попробуйте это:

<span th:if="${session[SPRING_SECURITY_LAST_EXCEPTION].message != null}"> 
    <span th:text="${session[SPRING_SECURITY_LAST_EXCEPTION].message}">Invalid credentials</span> 
</span> 
0

Попробуйте этот код, он более оптимален:

${session['SPRING_SECURITY_LAST_EXCEPTION']?.message} 

? - проверяет, не является ли ресурс нулевым

Смежные вопросы