1、概览

基于《springboot - 映射 /error 到自定义且实现了ErrorController的Controller》改造,仅将MyCustomErrorController类修改如下:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.error.ErrorAttributes;
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.context.request.ServletWebRequest; import javax.servlet.http.HttpServletRequest;
import java.util.Map; /**
* @author www.gomepay.com
* @date 2019/11/18
*/
@Controller
public class MyCustomErrorController implements ErrorController {
@Autowired
private ErrorAttributes errorAttributes; @RequestMapping("/error")
@ResponseBody
public String handleError(HttpServletRequest request) {
ServletWebRequest servletWebRequest = new ServletWebRequest(request);
Map<String, Object> errorAttributes = this.errorAttributes.getErrorAttributes(servletWebRequest, true);
final StringBuilder errorDetails = new StringBuilder();
errorAttributes.forEach((attribute, value) -> {
errorDetails.append("<tr><td>")
.append(attribute)
.append("</td><td><pre>")
.append(value)
.append("</pre></td></tr>");
}); return String.format("<html><head><style>td{vertical-align:top;border:solid 1px #666;}</style>"
+ "</head><body><h2>Error Page</h2><table>%s</table></body></html>"
, errorDetails.toString());
} @Override
public String getErrorPath() {
return "/error";
}
}

执行:

在我们自定义的 ErrorController中使用ErrorAttributes,可代替error.jsp 404.jsp页面。

最新文章

  1. Undefined symbols for architecture arm64解决方案
  2. IBatis 2.x 和 MyBatis 3.0.x 的区别(从 iBatis 到 MyBatis)
  3. 百度地图api
  4. nginx+uwsgi+django+celery+supervisord环境部署
  5. 【JAVA】LOG4J使用心得
  6. cocos2dx游戏开发——微信打飞机学习笔记(五)——BackgroundLayer的搭建
  7. 高放的c++学习笔记之类
  8. Linux下常用的压缩与解压命令
  9. 公众号第三方平台开发-aes解密失败
  10. Docker三十分钟快速入门(上)
  11. Tomcat源码调试环境搭建
  12. 14.QT-QFile文件,QBuffer缓冲区,QDir目录,QFileSystemWatcher文件系统监视
  13. select * 和 select 所有字段的区别
  14. Java文件上传之SpringMVC实例
  15. [转]阿里巴巴十年Java架构师分享,会了这个知识点的人都去BAT了
  16. FluentScheduler:开源轻量级定时任务调度架构
  17. [转]如何取得当前正在执行的shell脚本的绝对路径?
  18. ASP.netMVC文件下载的几种方法
  19. NOIP模拟赛11
  20. Kaggle:Titanic: Machine Learning from Disaster

热门文章

  1. 【转载】Git设置单个文件上传大小
  2. C 语言入门第五章--循环结构和选择结构
  3. java反射初探
  4. mysql视图初探
  5. luogu P2765 魔术球问题
  6. 如何利用TableView显示自定义nib中创建的UITableViewCell或子类?
  7. 无线渗透--wifiphisher之wifi钓鱼获取wifi密码
  8. P1062 最简分数
  9. 把自己的项目发布到maven仓库并在maven和gradle中开始使用
  10. 004、Java的多行注释