Я пытаюсь получить метаданные страницы, используя файл 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, чтобы решить, какую страницу отображать, и в этом случае у портала нет информации о состоянии отображаемой страницы.