1
19
20 package com.liferay.portal.struts;
21
22 import com.liferay.portal.kernel.util.InstancePool;
23
24 import javax.portlet.ActionRequest;
25 import javax.portlet.ActionResponse;
26 import javax.portlet.PortletConfig;
27 import javax.portlet.PortletRequest;
28 import javax.portlet.RenderRequest;
29 import javax.portlet.RenderResponse;
30
31 import org.apache.struts.action.ActionForm;
32 import org.apache.struts.action.ActionForward;
33 import org.apache.struts.action.ActionMapping;
34 import org.apache.struts.config.ModuleConfig;
35
36
42 public class DynamicPortletAction extends PortletAction {
43
44 public void processAction(
45 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
46 ActionRequest actionRequest, ActionResponse actionResponse)
47 throws Exception {
48
49 ModuleConfig moduleConfig = getModuleConfig(actionRequest);
50
51 mapping = (ActionMapping)moduleConfig.findActionConfig(
52 getPath(actionRequest));
53
54 PortletAction action = (PortletAction)InstancePool.get(
55 mapping.getType());
56
57 action.processAction(
58 mapping, form, portletConfig, actionRequest, actionResponse);
59 }
60
61 public ActionForward render(
62 ActionMapping mapping, ActionForm form, PortletConfig portletConfig,
63 RenderRequest renderRequest, RenderResponse renderResponse)
64 throws Exception {
65
66 ModuleConfig moduleConfig = getModuleConfig(renderRequest);
67
68 mapping = (ActionMapping)moduleConfig.findActionConfig(
69 getPath(renderRequest));
70
71 PortletAction action = (PortletAction)InstancePool.get(
72 mapping.getType());
73
74 return action.render(
75 mapping, form, portletConfig, renderRequest, renderResponse);
76 }
77
78 protected String getPath(PortletRequest portletRequest) throws Exception {
79 return null;
80 }
81
82 }