문제

첫 번째 Portlet 기반 응용 프로그램을 작성하고 있지만 솔루션은 컨테이너가 불가지론이어야합니다). 사람들이 포털의 다른 포틀릿 (아마도 다른 "페이지)에"리드 "하는 사용자에게 링크를 제공하기 위해 어떻게 해결 해야하는지 궁금합니다. ).

포틀릿 내부에서 쉽게 다른 뷰 모드를 가질 수 있지만 다른 포틀릿에 어떻게 연결하고 (아마도) 매개 변수를 전달할 수 있습니까?

나는 포틀릿들 사이의 일반적인 의사 소통에 대해 이야기하고 있지 않습니다. 그것은 저에게 관심있는 실제 페이지 흐름입니다.

예 : 뉴스 항목 목록을 표시하는 포틀릿이있는 페이지 A가 있습니다. 그런 다음 구성된 방식으로 구성된 Page B가 있습니다. 단일 뉴스 항목이 표시되기를 원합니다 (예 : 주변의 다른 포틀릿).

P

빠르고 더러운 솔루션은 뉴스리스트 포트렛의 편집 모드를 통해 대상 링크를 구성하는 것입니다. 그러나 여기에는 몇 가지 단점이 있습니다 .- 복잡한 포틀릿은 여러 대상 URL이있어 포털 관리자에 대한 대규모 구성 노력으로 이어질 수 있습니다. URL은 간단한 매개 변수 주입을 허용하는 체계를 따르지 않을 수 있습니다.

솔루션을 염두에두고 있지만, 대상 포틀릿의 막대한 노력과 변화가 필요할 수 있습니다. 이는 제 3 자 포틀릿을 사용하는 경우 항상 불가능합니다.

내 해결책은 다음과 같이 보일 것입니다 : (초안!)

Portlets는 Portlet ID와 함께 중앙 서비스에 등록하고 Portlet이 포틀릿에 링크하려면 상징적 이름을 기반으로 조회를 할 수 있습니다. 포틀릿을 "자동 발견"할 수 있기 때문에 관리자의 통증이 완화됩니다. 이 서비스는 또한 소스 및 대상 포틀릿을 기반으로 UI 투 와이어 포틀릿을 제공 할 수도 있습니다.

변경 될 수있는 포틀릿의 URL 생성은 포트 틀로 서비스 호출을 통해 해결 될 수 있으며,이를 주입 한 매개 변수로 전체로 URL을 생성하고 반환합니다. 변경할 수없는 포틀릿의 경우 매개 변수를 추가하고 작동하기를 바랍니다. :-/

제안이 있습니까? 더 간단한 솔루션이 있습니까? 기존 솔루션?

감사!

패트릭

도움이 되었습니까?

해결책

내가 아는 한 포틀릿 사양은 이것을 다루지 않습니다. 따라서 휴대용 솔루션이 없습니다. Liferay의 경우 항상이 문제를 목표로하는 사용자 정의 태그 라이브러리를 사용할 수 있습니다. WebSphere Portal과 비슷한 메커니즘이 있습니다.

무언가를 찾을 수 있습니다 여기 그리고 여기

일반적으로 나는 이것을 피하고 표준 IPC 메커니즘 (공개 렌더 매개 변수 또는 이벤트)을 사용하려고 노력합니다.

다른 팁

JSR 286 사양의 경우 포트 간 커뮤니케이션에 이벤트를 사용할 수 있습니다. 오래된 JSR 168의 경우 그렇게 할 수있는 방법이 없습니다. 자신에게 맞는 방법을 찾으면 사용하십시오.

무료로 제공되는 오래된 책이 있습니다. 매닝 (등록 필요). 거기에서 몇 가지 아이디어를 찾을 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top