我正在尝试使用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的路由器来决定要呈现的页面,在这种情况下,门户网站没有关于我正在呈现的页面的任何状态信息。