使用 Public render 参数

这种方法在 JSR 286 中引入。

在 JSR 168 中,portlet 的 processAction 中设置的呈现参数仅在该 portlet 中可用。使用 Public Render Parameters 功能,在一个 portlet 的 processAction 中设置的呈现参数也可用于呈现其他 portlet。为了配置这个,对于支持这个的所有 portlet:

portlet.xml 中 portlet 标记结束之前添加 <supported-public-render-parameter> 标记

<security-role-ref>
    <role-name>user</role-name>
</security-role-ref>
<supported-public-render-parameter>{param-name}</supported-public-render-parameter>
</portlet>

<portlet-app> 标签结束之前添加 <public-render-parameter> 标签

  <public-render-parameter>
    <identifier>{param-name}</identifier>
    <qname xmlns:x="localhost">x:{param-name}</qname>
  </public-render-parameter>
</portlet-app>

processAction 方法中,需要在响应中设置 param 值

res.setRenderParameter({param-name},{param-value});

发布完成为所有必需的 portlet 配置此功能后,在执行相关 portlet 的操作阶段后,param 应该在呈现阶段可用于页面上的所有支持 portlet,而不管是相同或不同应用程序的一部分(war )。