2015-09-24 37 views
0

我的代碼現在有WPS v7,現在我需要遷移到WPS8.5。但是,我們使用下面的方法render(Node aNode)方法在WebSphere Portal v8.5中不可用

無效渲染(節點陽極)

而且這種方法是不是在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++; 
} 

%> 

此渲染()方法不是在WPS V8.5模型調用可用的...有沒有用,我可以進行任何其他方法或什麼是出路。

早期的答案將非常有幫助和讚賞。在此先感謝

回答

0

它看起來你試圖通過使用舊的皮膚代碼來呈現portlet,你需要遷移你的皮膚與8.5一起工作你最好的時間使用是創建一個新的8.5主題和皮膚和marge在外觀和感覺,而不是試圖遷移你的舊代碼。

你可以抓住的8.0皮和地點放置它們,然後對其進行修改它使用 <門戶皮膚:layoutNodeRender/> 渲染節點,並將其來源於此標記庫 <%@標籤庫的URI =」 http://www.ibm.com/xmlns/prod/websphere/portal/v8.0/portal-skin「prefix =」portal-skin「%>