0

Liferay6およびMVCポートレットを使用しています。jspとextjsを使用してポートレットをレンダリングしています。最大化/最小化すると、ポートレットの現在の状態が失われます。最大化/最小化した後もポートレットの状態を保持したい。どうすればこれを達成できますか?

ありがとう

4

1 に答える 1

1

ポートレットには、アクション フェーズとレンダリング フェーズの 2 つのフェーズがあります。アクション フェーズは、状態を変更する必要がある場合に実行されます。フォーム送信が完了したとき。レンダリング フェーズは、最大化/最小化の後も常に実行されます。レンダリング フェーズで状態が変更されたくない場合は、このロジックをアクション フェーズに配置します。

MVC ポートレットでは、各フェーズを処理するための 2 つの方法があります。

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());
    }
}

ここでは、ポートレットの 2 つのフェーズについて読むことができます: http://www.liferay.com/documentation/liferay-portal/6.1/development/-/ai/understanding-the-two-phases-of-portlet-executi-4

于 2012-08-07T09:19:55.100 に答える