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.portlet.ActionRequestImpl;
29 import com.liferay.portlet.ActionResponseImpl;
30 import com.liferay.portlet.PortletContextImpl;
31 import com.liferay.portlet.RenderRequestImpl;
32 import com.liferay.portlet.RenderResponseImpl;
33 import com.liferay.util.servlet.UploadServletRequest;
34
35 import java.io.IOException;
36
37 import javax.portlet.GenericPortlet;
38 import javax.portlet.PortletRequest;
39 import javax.portlet.PortletResponse;
40
41 import javax.servlet.ServletContext;
42 import javax.servlet.http.HttpServletRequest;
43 import javax.servlet.http.HttpServletResponse;
44
45
53 public class LiferayServletContextProvider implements ServletContextProvider {
54
55 public ServletContext getServletContext(GenericPortlet portlet) {
56 PortletContextImpl portletCtxImpl =
57 (PortletContextImpl)portlet.getPortletContext();
58
59 return getServletContext(portletCtxImpl.getServletContext());
60 }
61
62 public ServletContext getServletContext(ServletContext ctx) {
63 return new LiferayServletContext(ctx);
64 }
65
66 public HttpServletRequest getHttpServletRequest(
67 GenericPortlet portlet, PortletRequest req) {
68
69 HttpServletRequest httpReq = null;
70
71 if (req instanceof ActionRequestImpl) {
72 httpReq = ((ActionRequestImpl)req).getHttpServletRequest();
73
74 String contentType = httpReq.getHeader(HttpHeaders.CONTENT_TYPE);
75
76 if ((contentType != null) &&
77 (contentType.startsWith(ContentTypes.MULTIPART_FORM_DATA))) {
78
79 try {
80 httpReq = new UploadServletRequest(httpReq);
81 }
82 catch (IOException ioe) {
83 }
84
85 httpReq = new LiferayStrutsRequestImpl(httpReq);
86 }
87 else {
88 httpReq = new LiferayStrutsRequestImpl((ActionRequestImpl)req);
89 }
90 }
91 else {
92 httpReq = new LiferayStrutsRequestImpl((RenderRequestImpl)req);
93 }
94
95 return httpReq;
96 }
97
98 public HttpServletResponse getHttpServletResponse(
99 GenericPortlet portlet, PortletResponse res) {
100
101 if (res instanceof RenderResponseImpl) {
102 return ((RenderResponseImpl)res).getHttpServletResponse();
103 }
104 else {
105 return ((ActionResponseImpl)res).getHttpServletResponse();
106 }
107 }
108
109 }