ポータル開発に Liferay 6 を使用しています。
Liferay 開発者ガイドを読み進めることで、著者は、ポートレットの実行には 2 つのフェーズがあることを説明しています。
- アクションフェーズ
- レンダリング フェーズ
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
知られ、メソッドは「アクション フェーズ」として知られています。
また、1 つのページに 5 つのポートレットが表示されている場合、「レンダリング フェーズ」(メソッド内のコードdoView
) は、ページが更新されるたびに実行されます。
私が正しいかどうか教えてください。