1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.apache.struts2.portlet.dispatcher;
23
24 import java.io.IOException;
25
26 import javax.servlet.ServletException;
27 import javax.servlet.http.HttpServlet;
28 import javax.servlet.http.HttpServletRequest;
29 import javax.servlet.http.HttpServletResponse;
30
31 import org.apache.struts2.dispatcher.StrutsRequestWrapper;
32 import org.apache.struts2.portlet.PortletActionConstants;
33 import org.apache.commons.lang.xwork.StringUtils;
34
35 public class DispatcherServlet extends HttpServlet implements PortletActionConstants {
36
37 private static final long serialVersionUID = -266147033645951967L;
38
39 @Override
40 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
41 String dispatchTo = (String) request.getAttribute(DISPATCH_TO);
42 HttpServletRequest wrapper = wrapRequestIfNecessary(request);
43 if(StringUtils.isNotEmpty(dispatchTo)) {
44 request.getRequestDispatcher(dispatchTo).include(wrapper, response);
45 }
46 }
47
48 private HttpServletRequest wrapRequestIfNecessary(HttpServletRequest request) {
49 if(!(request instanceof StrutsRequestWrapper)) {
50 return new StrutsRequestWrapper(request);
51 }
52 else {
53 return request;
54 }
55 }
56
57 }