Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Thymeleaf: th:текст, только если не нуль?

Автор вопроса: Rey LibutanОтветов: 4

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

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

thymeleafjsptemplate-engine

Ответы

Ответ 1 · рейтинг 3 · Aeseir

Вы можете использовать оператор 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>

Ответ 2 · рейтинг 2 · Sarvar Nishonboyev

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

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

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

Ответ 3 · anishroniyar

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

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

Ответ 4 · Devraj Giri

В вашем контроллере установите нулевую строковую переменную как

String nullvalue="";
model.addAttribute("nullvalue",nullvalue);
model.addAttribute("entity",entity);

затем в вашем классе просмотра, как в тимелеафе

<td data-th-if="${entity.field != nullvalue}">ok</td>

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы