Тема WebSphere Portal: доступ к метаданным страницы - PullRequest
0 голосов
/ 01 апреля 2019

Я пытаюсь получить метаданные страницы, используя файл JSP. Я использую приведенный ниже код для получения метаданных страницы.

<%!
    public void testMeta(PageContext pageContext, String nodeId) {
        Map<String, Object> parentMeta = (Map<String, Object>)pageContext.getAttribute(nodeId, PageContext.REQUEST_SCOPE);
        //System.out.println("Meta Object " + nodeId + ": " + parentMeta);
        Set<Map.Entry<String, Object>> entry1 = parentMeta.entrySet();
        //System.out.println("No. of elements: " + entry1.size());
        for (Map.Entry<String, Object> entry: entry1 ) {
            System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
        }
        Set<String> keySet = parentMeta.keySet();
        if (keySet != null ){
            System.out.println("Keyset contains something");
        } else {
            //System.out.println("Keyset is NULL");
        }
    }
%>

<c:if test="${empty parentID}">
    <c:set var="parentID" value="${param.parentID}" />
</c:if>
<c:set var="showHidden" value="${param.showHidden}" />
<c:set var="parentNode" value="${wp.navigationModel[parentID]}"/>
<c:if test="${curLevel==1}">
    <c:set var="dirMeta" value="${parentNode.metadata}" scope="request" />
    {
           "ishidden":"parentNode.metadata['com.ibm.portal.Hidden']"   //this is working
            "attributes": {
                <% testMeta(pageContext, "dirMeta"); %>
            }
    }
</c:if>

В приведенном выше коде я передаю идентификатор страницы со стороны клиента, выбирая метаданные страницы и ее дочерних элементов. Я получаю объект NavigationNodeBean, используя wp.navigationModel bean.

Я всегда получаю пустую карту в методе testMeta , размер набора entry1 всегда равен 0, хотя на странице имеется количество записей метаданных.

Кто-нибудь сталкивался с такой проблемой?

Примечание: Я не могу использовать , так как я не использую рендеринг портала, я использую тему портала с angular, которая получает содержимое страницы по мере необходимости. Я использую маршрутизатор angular, чтобы решить, какую страницу отображать, и в этом случае у портала нет информации о состоянии отображаемой страницы.

...