このプロジェクトでは、ポートレット プロジェクトの JSR バージョンを (168 から 286 に) 変更しています。すべてのポートレットは Faceポートレットであり、使用される jsf バージョンはjsf1.2です。モジュールはいくつかありますが、構造はほぼ同じです。それらは左側のポートレットであり、ユーザーの左側のナビゲーションとして機能します。右側には、さまざまなアプリケーション機能をホストするメイン ポートレットがあります。IPC を使用して、これらの選択された値が左側のポートレットから右側のポートレットに送信され、それに応じてビューが右側のポートレットに設定されます。
ポートレットの processEvent メソッドでは、受信した値に基づいてターゲット ポートレットのビューが設定されます。サンプルの processEvent メソッドは次のとおりです。
public void processEvent(EventRequest request, EventResponse response) throws PortletException, java.io.IOException
{
super.processEvent(request, response);
Event sampleEvent = request.getEvent();
if(sampleEvent.getName().toString().equals("ProcessEvent")) {
Object sampleProcessObject = sampleEvent.getValue();
System.out.println("Message Received : " + sampleProcessObject.toString());
TargetPortletView obj = (TargetPortletView) request.getPortletSession().getAttribute("pc_TargetPortletView"); // Managed Bean associated with the target Page
obj.setMessage(sampleProcessObject.toString());
request.getPortletSession().setAttribute("com.ibm.faces.portlet.page.view","/TargetPortletView.jsp");//Target JSP is set
}
}
しかし、いくつかの面のナビゲーションがターゲット jsp で発生し、ビューが別の jsp にリダイレクトされる場合 (たとえば、A.jsp->B.jsp->C.jsp)。次に、左側のポートレットから選択が行われると、右側のポートレットのビューは同じままで、IPC は正しく行われますが更新されません。他に詳細が必要な場合はお知らせください。前もって感謝します。