我正在使用6.0.6 CE来开发一个页面有两个portlet的需求。一个在左边,另一个在右边。 1.自定义portlet,用于为给定社区加载树结构中的文件夹列表。这里我使用的是jQuery zTree,其中doView为我提供了JSON数组中的文件夹列表。 http://www.ztree.me/v3/demo.php#_102
每个节点文件夹都有文档库的URL,例如: http://yourdomain.com/web/oracle/home/-/document_library/view/11614
当我点击其中任何一个时,重新加载整个页面,DL portlet显示给定文件夹ID 11614的子项。 但由于这个左侧树的结构崩溃了。
我想在左侧保留用户选择。为此,我只考虑在单击文件夹时仅渲染文档库portlet,但我无法通过任何IPC实现它。
任何建议都将不胜感激。
由于 普拉萨德
答案 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而不是整个页面重新加载。如果有更好的方法,请告诉我。