Liferay6.0:单击自定义TreeView portlet后呈现DL portlet URL

时间:2015-01-02 12:11:17

标签: liferay-6 ztree

我正在使用6.0.6 CE来开发一个页面有两个portlet的需求。一个在左边,另一个在右边。 1.自定义portlet,用于为给定社区加载树结构中的文件夹列表。这里我使用的是jQuery zTree,其中doView为我提供了JSON数组中的文件夹列表。 http://www.ztree.me/v3/demo.php#_102

  1. 文档库portlet
  2. 每个节点文件夹都有文档库的URL,例如: http://yourdomain.com/web/oracle/home/-/document_library/view/11614

    当我点击其中任何一个时,重新加载整个页面,DL portlet显示给定文件夹ID 11614的子项。 但由于这个左侧树的结构崩溃了。

    我想在左侧保留用户选择。为此,我只考虑在单击文件夹时仅渲染文档库portlet,但我无法通过任何IPC实现它。

    任何建议都将不胜感激。

    由于 普拉萨德

1 个答案:

答案 0 :(得分:0)

目前我正在遵循这种方法: 在页面加载期间,我从URL获取folderId,在doView()中,我将它作为renderRequest param传递。     long selectedFolderId = 0;

String friendlyUrlValue = PortalUtil.getCurrentURL(renderRequest);

String[] urlArray = friendlyUrlValue.split("/");
String secondLastword = urlArray[urlArray.length - 2];
if (urlArray.length > 0) {
    if (secondLastword.equalsIgnoreCase("view")) {
        selectedFolderId = Long.valueOf(urlArray[urlArray.length - 1]);
    }
}


JSONObject jSONObject = JSONFactoryUtil.createJSONObject();
createJson(themeDisplay.getScopeGroupId(), 0, jSONObject, renderRequest, fridendlyUrl);

if(selectedFolderId>0){
    renderRequest.setAttribute("selectedFId", String.valueOf(selectedFolderId));
}

请参阅此帖https://www.liferay.com/community/forums/-/message_boards/message/47300920

应该有另一种方法来实现仅重新加载文档库portlet而不是整个页面重新加载。如果有更好的方法,请告诉我。

相关问题