我的coode目前有WPS v7,现在我需要迁移到WPS8.5。但我们正在使用以下方法
void render(节点aNode)
并且此方法在WebSphere Portal v8.5中不可用。
完整代码:
<%@ page session="false" buffer="none" %>
<%@ page import="com.ibm.portal.*,com.ibm.portal.content.*,com.ibm.portal.navigation.*,com.ibm.wps.model.*" %>
<%@ page import="java.util.Iterator" %>
<%
ModelUtil modelUtil = ModelUtil.from(request);
ContentNode currentNode = ((NavigationNode)modelUtil.getNavigationSelectionModel().getSelectedNode( )).getContentNode();
CompositionModel model = modelUtil.getCompositionModel(currentNode.getObjectID());
CompositionNode currentElement = CompositionNodeHelper.getCurrentNode(pageContext.getRequest ());
int counter=0;
String div = null;
boolean divRender = false;
for (Iterator iterator = model.getChildren(currentElement);iterator.hasNext();) {
CompositionNode child = (CompositionNode) iterator.next();
if(false && counter == 0 && model.hasChildren(child)){
div = "<div id=\"main-content-portlet\">";
divRender = true;
}else if (counter == 1){
div = "<div id=\"ibm-content-sidebar\">";
divRender = true;
}
if(divRender){
out.println(div);
}
model.render(child); **** ISSUE IS HERE WITH THE RENDER METHOD
if(divRender){
if(div.indexOf("ibm-content-sidebar") > 0){
out.println("<div id=\"ibm-contact-module\"></div>");
out.println("<div id=\"ibm-merchandising-module\"></div>");
out.println("</div><!-- ibm-content-sidebar end -->");
}else {
}
}
counter++;
}
%>
这个render()方法在WPS v8.5中的模型调用中不可用...是否有任何替代方法可以继续进行或者有什么出路。
早期的答案将非常有帮助和赞赏。在此先感谢
答案 0 :(得分:0)
看起来你正在尝试使用旧皮肤代码渲染portlet,你需要迁移你的皮肤才能使用8.5你最好的时间是创建一个新的8.5主题和皮肤和marge的外观和感觉而不是尝试迁移旧代码。
你可以抓住8.0皮肤并将它们放在适当的位置,然后修改它们使用的 &LT;门皮肤:layoutNodeRender /&GT; 渲染节点,它来自这个taglib &lt;%@ taglib uri =“http://www.ibm.com/xmlns/prod/websphere/portal/v8.0/portal-skin”prefix =“portal-skin”%&gt;