2012-08-06 76 views
0

我正在使用Liferay 6和MVC portlet。我使用jsp和extjs來呈現我的portlet。當我最大化/最小化時,Portlet的當前狀態會丟失。即使在最大化/最小化之後,我也想保留portlet的狀態。我怎樣才能做到這一點?最大化/最小化時不保留Portlet狀態

感謝

回答

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

+0

感謝您的幫助:) – user1415459 2012-08-14 15:39:10

相關問題