WebSphere Portal主题:访问页面元数据

时间:2019-04-01 09:27:12

标签: websphere websphere-portal

我正在尝试使用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>

在上面的代码中,我从客户端传递页面标识符,以获取页面及其子元素的元数据。我正在使用wp.navigationModel bean获得NavigationNodeBean的对象。

testMeta 方法中,我总是会得到空的Map,尽管页面上存在许多元数据条目,但 entry1 集的大小始终为0。

有人遇到过这种问题吗?

注意: 我不能使用 ,因为我没有使用门户网站的渲染,而是使用了带有角度的门户网站主题,该主题可以在必要时获取页面内容。我正在使用angular的路由器来决定要呈现的页面,在这种情况下,门户网站没有关于我正在呈现的页面的任何状态信息。

0 个答案:

没有答案