portlet内嵌入其他的portlet的做法。
假设portlet名为svgConfiguration
工程类型为portlet 工程名为ps
liferay有一个标签 为<liferay-portlet:runtime portletName=”svgConfiguration_WAR_psportlet” />
在其他的portlet的页面中使用这个标签 就可以嵌入svgConfiguration portlet
使用这个 标签嵌入的portlet的action中的renderResponse.setRenderParameter传参在页面中接收不到。
请使用actionRequest.setAttribute(“key”,value);的方式来传值。
当我们在内嵌的portlet中请求其后台时 会发生异常。无法请求到后台的action。异常信息为
Reject process action for http://localhost:8080/web/guest/welcome on svgConfiguration_WAR_psportlet.
这是因为liferay为了防止CSRF。进行了校验。我们如果想将被嵌入的portlet加入例外。我们需要在EXT工程的portal-ext.properties里面加入
auth.token.ignore.portlets=82,svgConfiguration_WAR_psportlet
其中的82是源码中就存在的。多个portlet之间用半角逗号隔开。