400.jsp 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <%
  2. response.setStatus(400);
  3. // 获取异常类
  4. Throwable ex = Exceptions.getThrowable(request);
  5. // 编译错误信息
  6. StringBuilder sb = new StringBuilder("错误信息:\n");
  7. if (ex != null) {
  8. if (ex instanceof BindException) {
  9. for (ObjectError e : ((BindException)ex).getGlobalErrors()){
  10. sb.append("☆" + e.getDefaultMessage() + "(" + e.getObjectName() + ")\n");
  11. }
  12. for (FieldError e : ((BindException)ex).getFieldErrors()){
  13. sb.append("☆" + e.getDefaultMessage() + "(" + e.getField() + ")\n");
  14. }
  15. LoggerFactory.getLogger("400.jsp").warn(ex.getMessage(), ex);
  16. }else if (ex instanceof ConstraintViolationException) {
  17. for (ConstraintViolation<?> v : ((ConstraintViolationException)ex).getConstraintViolations()) {
  18. sb.append("☆" + v.getMessage() + "(" + v.getPropertyPath() + ")\n");
  19. }
  20. } else {
  21. //sb.append(Exceptions.getStackTraceAsString(ex));
  22. sb.append("☆" + ex.getMessage());
  23. }
  24. } else {
  25. sb.append("未知错误.\n\n");
  26. }
  27. // 如果是异步请求或是手机端,则直接返回信息
  28. if (Servlets.isAjaxRequest(request)) {
  29. out.print(sb);
  30. }
  31. // 输出异常信息页面
  32. else {
  33. %>
  34. <%@page import="javax.validation.ConstraintViolation"%>
  35. <%@page import="javax.validation.ConstraintViolationException"%>
  36. <%@page import="org.springframework.validation.BindException"%>
  37. <%@page import="org.springframework.validation.ObjectError"%>
  38. <%@page import="org.springframework.validation.FieldError"%>
  39. <%@page import="org.slf4j.Logger,org.slf4j.LoggerFactory"%>
  40. <%@page import="com.jeeplus.core.web.Servlets"%>
  41. <%@page import="com.jeeplus.common.utils.Exceptions"%>
  42. <%@page import="com.jeeplus.common.utils.StringUtils"%>
  43. <%@page contentType="text/html;charset=UTF-8" isErrorPage="true"%>
  44. <%@include file="/webpage/include/taglib.jsp"%>
  45. <!DOCTYPE html>
  46. <html>
  47. <head>
  48. <title>400 - 请求出错</title>
  49. <%@include file="/webpage/include/anihead.jsp" %>
  50. </head>
  51. <body>
  52. <div class="container-fluid">
  53. <div class="page-header"><h1>参数有误,服务器无法解析.</h1></div>
  54. <div class="errorMessage">
  55. <%=StringUtils.toHtml(sb.toString())%> <br/>
  56. </div>
  57. <a href="javascript:" onclick="history.go(-1);" class="btn">返回上一页</a> &nbsp;
  58. <br/> <br/>
  59. <script>top.layer.closeAll("dialog")</script>
  60. </div>
  61. </body>
  62. </html>
  63. <%
  64. } out = pageContext.pushBody();
  65. %>