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