Пользовательское исключение, генерируемое в Java, должно отображаться в Thymeleaf - PullRequest
0 голосов
/ 22 декабря 2018

Я хочу показать свое пользовательское исключение, которое выдается в коде Java в Thymeleaf.

@Override
public UserDetails loadUserByUsername(String benutzername) throws UsernameNotFoundException {
    Benutzer benutzer = userRepository.findByBenutzername(benutzername);
    if (benutzer == null || ! benutzer.isActive()) {
        throw new UsernameNotFoundException("Wrong username or password was provided!");
    }

<div th:if="${param.error}" >
    <div class="alert alert-danger">
        Here should my custom exception appear from above.
    </div>
</div>

Я выбрасываю новое исключение UsernameNotFoundException с пользовательским исключением, однако это исключение должно отображаться в моем шаблоне, однакоЯ не знаю, как это сделать.

1 Ответ

0 голосов
/ 23 декабря 2018

Определите свойство в application.properties, чтобы включить трассировку стека в качестве атрибута выражения в представлении Thymeleaf.

server.error.include-stacktrace=always

, а затем создайте страницу ошибки с именем error.html, как показано ниже.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org">
<head>
    <style>
table td{
vertical-align:top;
border:solid 1px #888;
padding:10px;
}

    </style>
</head>
<body>
<h1>My Thymeleaf Error Page</h1>
<table>
    <tr>
        <td>Date</td>
        <td th:text="${timestamp}"/>
    </tr>
    <tr>
        <td>Path</td>
        <td th:text="${path}"/>
    </tr>
    <tr>
        <td>Error</td>
        <td th:text="${error}"/>
    </tr>
    <tr>
        <td>Status</td>
        <td th:text="${status}"/>
    </tr>
    <tr>
        <td>Message</td>
        <td th:text="${message}"/>
    </tr>
    <tr>
        <td>Exception</td>
        <td th:text="${exception}"/>
    </tr>
    <tr>
        <td>Trace</td>
        <td>
            <pre th:text="${trace}"/>
        </td>
    </tr>
</table>
</body>
</html>

См. это для полного примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...