【发布时间】:2021-01-08 10:39:17
【问题描述】:
我已经创建了一个 JSP 页面来处理异常:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<div class="row">
<div class="col-md-6 col-md-offset-3 col-sm-8 offset-sm-2 text-center">
<div class="messageJsp">
<c:out value="${message}" />
</div>
<!--
Failed URL: <c:out value="${url}" />
Exception Message: <c:out value="${exception.message}" />
<c:forEach var="line" items="${exception.stackTrace}">
<c:out value="${line}" />
</c:forEach>
-->
</div>
</div>
我还有一个 Java 类,可以向该 JSP 页面发送有关异常的信息:
@ControllerAdvice
public class GlobalExceptionHandler {
@Value("${message.error.exception}")
private String exceptionMessage;
@ExceptionHandler(value=Exception.class)
public ModelAndView defaultErrorHandler(HttpServletRequest req, Exception e) {
ModelAndView modelAndView = new ModelAndView();
modelAndView.getModel().put("message", exceptionMessage);
modelAndView.getModel().put("url", req.getRequestURI());
modelAndView.getModel().put("exception", e);
modelAndView.setViewName("app.exception");
return modelAndView;
}
}
出于测试目的,我故意在我的代码中添加异常来测试这一点,我从 JSP 页面中注释掉的代码中获取所有信息,我不明白为什么或如何工作,所以我是希望我能得到解释:
注意:发生错误后,我被重定向到错误页面,如果我右键单击页面 -> 查看页面源代码,我可以在评论中看到我评论的 JSP 代码实际执行并为我提供了信息(这很好,但我不明白怎么做)
页面来源可以在这里找到:Stacktrace comment
【问题讨论】:
标签: java spring-boot jsp thymeleaf