1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.admininterface;
35
36 import info.magnolia.cms.servlets.MVCServlet;
37 import info.magnolia.cms.servlets.MVCServletHandler;
38 import info.magnolia.cms.util.RequestFormUtil;
39
40 import javax.servlet.http.HttpServletRequest;
41 import javax.servlet.http.HttpServletResponse;
42
43 import org.apache.commons.lang.StringUtils;
44 import org.slf4j.Logger;
45 import org.slf4j.LoggerFactory;
46
47
48
49
50
51
52 public class PageMVCServlet extends MVCServlet {
53
54
55
56
57 private static final long serialVersionUID = 222L;
58
59
60
61
62 private static Logger log = LoggerFactory.getLogger(PageMVCServlet.class);
63
64
65
66
67 @Override
68 protected MVCServletHandler getHandler(HttpServletRequest request, HttpServletResponse response) {
69
70 String pageName = RequestFormUtil.getParameter(request, "mgnlPage");
71 if (StringUtils.isEmpty(pageName)) {
72 if (StringUtils.isNotEmpty((String) request.getAttribute("javax.servlet.include.servlet_path"))) {
73 pageName = (String) request.getAttribute("javax.servlet.include.path_info");
74 }
75
76 if (StringUtils.isEmpty(pageName)) {
77 pageName = request.getPathInfo();
78 }
79
80
81 pageName = StringUtils.substringAfterLast(pageName, "/");
82
83 pageName = StringUtils.substringBeforeLast(pageName, ".");
84 }
85
86 PageMVCHandler handler = null;
87
88 if (StringUtils.isNotEmpty(pageName)) {
89
90 try {
91 handler = PageHandlerManager.getInstance().getPageHandler(pageName, request, response);
92 }
93 catch (InvalidDialogPageHandlerException e) {
94 log.error("Could not instanciate page handler with name " + pageName, e);
95 }
96 }
97 else {
98 log.warn("No dialogpage name passed for url {}", request.getRequestURI());
99 }
100
101 return handler;
102 }
103
104 }