gpt4 book ai didi

java - 如何在Liferay中获取Layout实例的URL?什么是友好 URL 库?

转载 作者:行者123 更新时间:2023-12-01 23:50:12 26 4
gpt4 key购买 nike

假设我有 Layout 实例(Java 或 JSP 中的)并且我想获取它的 URL。

布局代表一个页面。页面有“友好 URL”,我可以通过 FriendlyURL 属性获取它。

但是完整的网址呢?

我还可以获得scopeGroup的友好网址,其中

Group scopeGroup = themeDisplay.getScopeGroup();

并获得更短的部分,这也是不完整的。

Company.getPortalURL

也不包含所有其他文本(不包括端口和“/web”部分)。

\ROOT\html\portlet\layouts_admin\layout\details.jsp 中,我找到了以下代码来构建它

    boolean privateLayout = ((Boolean)renderRequest.getAttribute("edit_pages.jsp-privateLayout")).booleanValue();
Layout selLayout = (Layout)renderRequest.getAttribute("edit_pages.jsp-selLayout");

StringBuilder friendlyURLBase = new StringBuilder();
friendlyURLBase.append(themeDisplay.getPortalURL());


LayoutSet layoutSet = selLayout.getLayoutSet();

String virtualHostname = layoutSet.getVirtualHostname();

if (Validator.isNull(virtualHostname) || (friendlyURLBase.indexOf(virtualHostname) == -1)) {
friendlyURLBase.append(scopeGroup.getPathFriendlyURL(privateLayout, themeDisplay));
friendlyURLBase.append(scopeGroup.getFriendlyURL());
}

但是这段代码基于奇怪的参数edit_pages.jsp-privateLayoutedit_pages.jsp-selLayout,恐怕在普通的portlet中无法访问。

那么,如何获取页面实例的完整URL呢?

最佳答案

试试这个:

PortalUtil.getLayoutFullURL(layout, themeDisplay)

关于java - 如何在Liferay中获取Layout实例的URL?什么是友好 URL 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16407815/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com