1
22
23 package com.liferay.portal.apache.bridges.struts;
24
25 import com.liferay.portal.kernel.servlet.HttpHeaders;
26 import com.liferay.portal.kernel.servlet.ServletContextProvider;
27 import com.liferay.portal.kernel.util.ContentTypes;
28 import com.liferay.portal.upload.UploadServletRequestImpl;
29 import com.liferay.portal.util.PortalUtil;
30 import com.liferay.portlet.ActionRequestImpl;
31 import com.liferay.portlet.PortletContextImpl;
32 import com.liferay.portlet.RenderRequestImpl;
33
34 import javax.portlet.GenericPortlet;
35 import javax.portlet.PortletRequest;
36 import javax.portlet.PortletResponse;
37
38 import javax.servlet.ServletContext;
39 import javax.servlet.http.HttpServletRequest;
40 import javax.servlet.http.HttpServletResponse;
41
42
50 public class LiferayServletContextProvider implements ServletContextProvider {
51
52 public ServletContext getServletContext(GenericPortlet portlet) {
53 PortletContextImpl portletContextImpl =
54 (PortletContextImpl)portlet.getPortletContext();
55
56 return getServletContext(portletContextImpl.getServletContext());
57 }
58
59 public ServletContext getServletContext(ServletContext servletContext) {
60 return new LiferayServletContext(servletContext);
61 }
62
63 public HttpServletRequest getHttpServletRequest(
64 GenericPortlet portlet, PortletRequest portletRequest) {
65
66 HttpServletRequest request = null;
67
68 if (portletRequest instanceof ActionRequestImpl) {
69 request = PortalUtil.getHttpServletRequest(portletRequest);
70
71 String contentType = request.getHeader(HttpHeaders.CONTENT_TYPE);
72
73 if ((contentType != null) &&
74 (contentType.startsWith(ContentTypes.MULTIPART_FORM_DATA))) {
75
76 request = new UploadServletRequestImpl(request);
77 request = new LiferayStrutsRequestImpl(request);
78 }
79 else {
80 request = new LiferayStrutsRequestImpl(
81 (ActionRequestImpl)portletRequest);
82 }
83 }
84 else {
85 request = new LiferayStrutsRequestImpl(
86 (RenderRequestImpl)portletRequest);
87 }
88
89 return request;
90 }
91
92 public HttpServletResponse getHttpServletResponse(
93 GenericPortlet portlet, PortletResponse portletResponse) {
94
95 return PortalUtil.getHttpServletResponse(portletResponse);
96 }
97
98 }