View Javadoc
1   package org.woehlke.bloodmoney.application;
2   
3   import lombok.extern.slf4j.Slf4j;
4   import org.springframework.boot.web.servlet.error.ErrorController;
5   import org.springframework.http.HttpStatus;
6   import org.springframework.stereotype.Controller;
7   import org.springframework.ui.Model;
8   import org.springframework.web.bind.annotation.RequestMapping;
9   
10  import javax.servlet.RequestDispatcher;
11  import javax.servlet.http.HttpServletRequest;
12  
13  @Slf4j
14  @Controller
15  public class BloodMoneyErrorController implements ErrorController {
16  
17      @RequestMapping("/fehler")
18      public String handleError(HttpServletRequest request, Model model) {
19          Exception exception = (Exception) request.getAttribute(RequestDispatcher.ERROR_EXCEPTION);
20          log.info("exceptionMessage: "+exception);
21          Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
22          if (status != null) {
23              log.info("statusCode: "+status.toString());
24              Integer statusCode = Integer.valueOf(status.toString());
25              if(statusCode == HttpStatus.FORBIDDEN.value()) {
26                  return "error/error-403";
27              }
28              if(statusCode == HttpStatus.NOT_FOUND.value()) {
29                  return "error/error-404";
30              }
31              else if(statusCode == HttpStatus.INTERNAL_SERVER_ERROR.value()) {
32                  return "error/error-500";
33              }
34          }
35          model.addAttribute("exceptionMessage",exception);
36          return "error/error";
37      }
38  
39      @SuppressWarnings("deprecation")
40      @Override
41      public String getErrorPath() {
42          return "/fehler";
43      }
44  }