最大化/最小化时不保留Portlet状态

时间:2012-08-06 16:37:01

标签: model-view-controller extjs4 portlet liferay-6

我正在使用Liferay 6和MVC portlet。我使用jsp和extjs来渲染我的portlet。当我最大化/最小化时,portlet的当前状态将丢失。我想在最大化/最小化之后保留portlet的状态。我怎样才能做到这一点?

由于

1 个答案:

答案 0 :(得分:1)

Portlet有两个阶段:行动阶段&渲染阶段。当某个州必须改变时,将运行行动阶段,例如。表单提交完成后。在最大化/最小化之后,渲染阶段将始终运行。 如果您不希望在渲染阶段更改某个状态,请将此逻辑置于操作阶段。

通过MVC-Portlet,您有两种处理每个阶段的方法:

public class MyLiferayTestPortlet extends MVCPortlet {
    @Override
    public void processAction(ActionRequest actionRequest, ActionResponse actionResponse) throws IOException, PortletException {
        System.out.println("action");
        //here you can change the state
    }

    @Override
    public void doView(RenderRequest renderRequest, RenderResponse renderResponse) throws IOException, PortletException {
        System.out.println("rendering");
        //here you can prepaire the rendering of jsp

        //print the window state
        ThemeDisplay td = (ThemeDisplay)renderRequest.getAttribute(WebKeys.THEME_DISPLAY);
        System.out.println("isStateMaximized: " + td.isStateMaximized());
    }
}

在这里,您可以阅读有关portlet的两个阶段: http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/understanding-the-two-phases-of-portlet-executi-4