ICEFaces + Liferay:如何为public-render-parameter设置值

时间:2009-11-25 10:11:51

标签: liferay icefaces

ICEFaces + Liferay:我创建了两个war文件firstApp.war和secondApp.war文件,并部署在liferay上。 我想实现,当我在firstApp.war应用程序页面上单击“提交”按钮时,firstAppBacking bean应该在public-render-parameter中设置一些值,以便我可以在secondApp.war应用程序中获取类似IPC的值。请告诉我如何在firstAppText中设置valiue。

<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>

1 个答案:

答案 0 :(得分:1)

有几种方法可以做到这一点。首先,基本概念得到了很好的描述here

如您所见,您可以在不同的“上下文”中共享数据。一种方法是通过在portlet.xml中声明shared-portlet-session-attribute来通过会话共享数据,例如。

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

其他分享数据的方法是: - PortletSession - PortletContext - 页面参数 - Portlet活动

this book中描述了不同的方式。我还没有尝试过所有这些,因此我现在无法提供更多细节。