포틀릿 조정
이벤트 메커니즘이나 공용 렌더링 매개변수 메커니즘을 사용하여 포털 내에서 포틀릿을 조정할 수 있습니다.
JSR 286은 다음과 같이 두 개의 메커니즘을 정의합니다.
- 이벤트: 조치 단계(Phase)에서 포틀릿에 대한 느슨한 결합
- 공용 렌더링 매개변수: 포틀릿 사이에서 보기 상태 공유
WebSphere® Application Server 포틀릿 컨테이너는 하나의 예외를 제외하고는 두 개념을 모두 지원합니다. 포털 레벨에서의 이벤트 연결은 지원되지 않습니다.
집계 태그 라이브러리로 정의한 포털 페이지에서 공용 렌더링 매개변수를 사용하려면
포털 범위를 명시적으로 선언해야 합니다.
<%@ taglib uri="http://ibm.com/portlet/aggregation" prefix="portlet" %>
<%@ page isELIgnored ="false"%>
<!-- define portal scope for public render parameters -->
<portlet:scope>
<portlet:portlet context="/simpleportlet" portletname="SimplePortlet1" windowId="id1"/
<portlet:portlet context="/simpleportlet2" portletname="SimplePortlet2" windowId="id2"/>
</portlet:scope>
<portlet:init portletURLPrefix="/my-webapp-context/my-portal-jsp-url-pattern/">
<!-- insert your portlets here, wrapped with your html markup -->
...
<portlet:insert url="simpleportlet/SimplePortlet1" windowId="id1" titleVar="portlettitle_1"/>
...
<portlet:insert url="simpleportlet2/SimplePortlet2" windowId="id2" titleVar="portlettitle_1"/>
...
</portlet:init>
공용 렌더링 매개변수는 이 정의된 범위 내에 언급된 포틀릿 창에만 표시됩니다. 이 조건에서는 전제조건으로 해당 포틀릿은 JSR 286 스펙에 따라 portlet.xml 파일에 지정된 공용 렌더링 매개변수에 대한 지원도 선언하는 것으로 간주합니다.
...
<portlet>
<portlet-name>portlet_name1</portlet-name>
...
<supported-public-render-parameter>foo</supported-public-render-parameter>
</portlet>
<portlet>
<portlet-name>portlet_name2</portlet-name>
...
<supported-public-render-parameter>foo</supported-public-render-parameter>
</portlet>
<public-render-parameter>
<identifier>foo</identifier>
<qname xmlns:x="http://example.com/params">x:foo2</qname>
</public-render-parameter>
...