Как получить URL-адрес экземпляра макета в Liferay? Что такое дружественная база URL?

Предположим, у меня есть экземпляр Layout (на Java или JSP), и я хочу получить его URL-адрес.

Макет представляет собой страницу. Страница имеет «дружественный URL», и я могу получить его по свойству friendlyURL.

А как насчет ПОЛНОГО URL?

Я также могу получить дружественный URL 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-privateLayout и edit_pages.jsp-selLayout, которые, боюсь, не будут доступны в обычном портлете.

Итак, как получить ПОЛНЫЙ URL экземпляра страницы?


person Dims    schedule 06.05.2013    source источник


Ответы (1)


Попробуй это:

PortalUtil.getLayoutFullURL(layout, themeDisplay)
person Andrea Di Giorgi    schedule 06.05.2013
comment
Кстати, взгляните на сервис PortalUtil: в нем много интересных служебных методов :-) - person Andrea Di Giorgi; 07.05.2013
comment
Да они все в разные места кладут: в ...ServiceUtil классы, в переменные, в пользовательские теги JSP, в свойства, в методы и еще в PortalUtil. Забыл поискать там. - person Dims; 07.05.2013