我正在使用 Liferay 6 进行门户开发。
通过阅读Liferay 开发人员指南,作者解释说 Portlet 执行分为两个阶段
- 行动阶段
- 渲染阶段
public class DateTimePortlet extends GenericPortlet
{
public void doView(RenderRequest req, RenderResponse res) throws IOException, PortletException
{
Object actionAttribute = req.getAttribute("datetime");
res.getWriter().println("Date Time:" + (actionAttribute != null ? actionAttribute :"Unavailable"));
res.getWriter().println("<BR/>");
PortletURL u = res.createActionURL();
res.getWriter().println("<A href=" + u + ">Trigger an action.");
res.getWriter().close();
}
public void processAction(ActionRequest req, ActionResponse res) throws PortletException
{
req.setAttribute("datetime",new Date());
}
}
我的理解是该doView
方法称为“渲染阶段”,该processAction
方法称为“操作阶段”。
如果一个页面上显示了 5 个 portlet,则doView
每次页面刷新都会执行“渲染阶段”(即方法内的代码)。
请让我知道我是否正确。