ICEFaces + Liferay: как установить значение параметра public-render

ICEFaces + Liferay: я создал два военных файла firstApp.war и secondApp.war и развернул их на Liferay. Я хочу реализовать, когда я нажимаю кнопку отправки на странице приложения firstApp.war, bean-компонент firstAppBacking должен установить некоторое значение в параметре public-render-parameter, чтобы я мог получить это значение в приложении secondApp.war, например, IPC. Пожалуйста, подскажите, как я могу установить значение в firstAppText.

<portlet-app ....>
<portlet>
    <portlet-name>firstApp</portlet-name>
    <display-name>First App</display-name>
    <portlet-class>com.icesoft.faces.webapp.http.portlet.MainPortlet</portlet-class>
    <init-param>
        <name>com.icesoft.faces.VIEW</name>
        <value>/jsp/firstApp.iface</value>
    </init-param>
    ....
    **<supported-public-render-parameter>firstAppText</supported-public-render-parameter>**
</portlet>
<public-render-parameter>
    <identifier>firstAppText</identifier>
    <qname xmlns:x="http://www.liferay.com/public-render-parameters">x:firstAppText</qname>
</public-render-parameter>


person RaviKoda    schedule 25.11.2009    source источник


Ответы (1)


Есть несколько способов сделать это. Прежде всего, основные понятия хорошо описаны здесь.

Как видите, вы можете обмениваться данными в разных «контекстах». Одним из способов является совместное использование данных через сеанс путем объявления атрибута shared-portlet-session-attribute в файле portlet.xml, например

<shared-portlet-session-attribute> 
   <name>someName</name>
   <java-class>com.some.class</java-class>
<shared-portlet-session-attribute>

Другие способы совместного использования данных: - PortletSession - PortletContext - Параметры страницы - События портлета

Различные способы описаны в этой книге. Я еще не пробовал все из них, поэтому я не могу сейчас дать более подробную информацию.

person Bertolt    schedule 26.11.2009