Java 中抛出的自定义异常应该显示在 Thymeleaf 中
Custom Exception thrown in Java should be shown in Thymeleaf
我想显示在 Thymeleaf 的 Java 代码中抛出的自定义异常。
@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,这个异常应该显示在我的模板中,但是,我不知道应该如何完成。
在 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>
完整示例请参考 this 。
我想显示在 Thymeleaf 的 Java 代码中抛出的自定义异常。
@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,这个异常应该显示在我的模板中,但是,我不知道应该如何完成。
在 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>
完整示例请参考 this 。