30 |
30 |
31 import de.uapcore.lightpit.*; |
31 import de.uapcore.lightpit.*; |
32 |
32 |
33 import javax.servlet.annotation.WebServlet; |
33 import javax.servlet.annotation.WebServlet; |
34 import javax.servlet.http.HttpServletRequest; |
34 import javax.servlet.http.HttpServletRequest; |
|
35 import javax.servlet.http.HttpServletResponse; |
35 import java.util.Optional; |
36 import java.util.Optional; |
36 |
37 |
37 /** |
38 /** |
38 * Entry point for the application. |
39 * Entry point for the application. |
39 */ |
40 */ |
47 name = "ErrorModule", |
48 name = "ErrorModule", |
48 urlPatterns = "/error/*" |
49 urlPatterns = "/error/*" |
49 ) |
50 ) |
50 public final class ErrorModule extends AbstractLightPITServlet { |
51 public final class ErrorModule extends AbstractLightPITServlet { |
51 |
52 |
52 public static final String REQ_ATTR_ERROR_CODE = "errorCode"; |
|
53 public static final String REQ_ATTR_RETURN_LINK = "returnLink"; |
53 public static final String REQ_ATTR_RETURN_LINK = "returnLink"; |
54 |
54 |
55 private ResponseType handle(HttpServletRequest req, int sc) { |
55 @RequestMapping(requestPath = "generic", method = HttpMethod.GET) |
56 |
56 public ResponseType onError(HttpServletRequest req, HttpServletResponse resp) { |
57 req.setAttribute(REQ_ATTR_ERROR_CODE, sc); |
|
58 |
|
59 Optional.ofNullable(req.getHeader("Referer")).ifPresent( |
57 Optional.ofNullable(req.getHeader("Referer")).ifPresent( |
60 referer -> req.setAttribute(REQ_ATTR_RETURN_LINK, referer) |
58 referer -> req.setAttribute(REQ_ATTR_RETURN_LINK, referer) |
61 ); |
59 ); |
62 |
60 |
63 setStylesheet(req, "error"); |
61 setStylesheet(req, "error"); |
64 setDynamicFragment(req, "error"); |
62 setDynamicFragment(req, "error"); |
65 |
63 |
66 return ResponseType.HTML; |
64 return ResponseType.HTML; |
67 } |
65 } |
68 |
|
69 @RequestMapping(requestPath = "404.html", method = HttpMethod.GET) |
|
70 public ResponseType handle404(HttpServletRequest req) { |
|
71 return handle(req, 404); |
|
72 } |
|
73 |
|
74 @RequestMapping(requestPath = "403.html", method = HttpMethod.GET) |
|
75 public ResponseType handle403(HttpServletRequest req) { |
|
76 return handle(req, 403); |
|
77 } |
|
78 |
|
79 @RequestMapping(requestPath = "500.html", method = HttpMethod.GET) |
|
80 public ResponseType handle500(HttpServletRequest req) { |
|
81 return handle(req, 500); |
|
82 } |
|
83 } |
66 } |