springboot - 使用ErrorAttributes 在我们自定义的 ErrorController中
生活随笔
收集整理的這篇文章主要介紹了
springboot - 使用ErrorAttributes 在我们自定义的 ErrorController中
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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頁面。
總結
以上是生活随笔為你收集整理的springboot - 使用ErrorAttributes 在我们自定义的 ErrorController中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java瑞格实验2;2020.4.3
- 下一篇: ASCII, Unicode, UTF-