프로젝트에서 우리는 JSR 버전 (168에서 286까지)의 포틀릿 프로젝트를 변경하고 있습니다. 모든 포틀릿은 이며 포틀릿은이고 사용 된 jsf 버전은 jsf1.2입니다. 우리는 여러 모듈을 가지고 있지만 구조는 거의 같습니다. 그것들은 왼쪽에있는 포틀릿이며, 사용자를위한 왼쪽 탐색 역할을합니다. 오른쪽에는 다양한 애플리케이션 기능을 제공하는 기본 포틀릿이 있습니다. 왼쪽 된 포틀릿에서 오른쪽 포틀릿으로 선택된 값을 전송하기 위해 IPC가 사용되고 따라서보기가 오른쪽의 포틀릿에 설정됩니다.얼굴 포틀릿 탐색 - WebSphere Portal - JSR 286
포틀릿의 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가 제대로 발생하더라도 오른쪽 포틀릿의보기는 동일하게 유지되고 업데이트되지 않습니다. 다른 세부 정보가 필요한지 알려주십시오. 미리 감사드립니다.
zarfarf - 답장을 보내 주셔서 감사합니다. 내가 공유 한 접근 방식을 이해했습니다. 그러나 문제는 고정 된 대상 페이지 (예 : /TargetPortletView.jsp)가 없기 때문에 "to-view-id"가 시나리오마다 다를 수 있다는 것입니다. 따라서 IPC를 통해받은 입력을 기반으로 processEvent 메소드에서 동적으로 대상보기 ID를 설정하는 메커니즘이 필요합니다. –