您可能应该单独提出这些问题,但我会尝试回答这两个问题
1. Portlet 通信
在 portlet 之间交换数据的方法有很多种。这些可能是最常见、最有用和最正确的(但我能想到的还有更多,可能还有更多的人能够针对非常具体的要求提出):
- 会话属性- 这些非常有用,但不应过度使用,因为这会对性能产生负面影响;您只需在一个 portlet 的操作阶段编写一些会话属性,然后在另一个 portlet 的呈现阶段读取它们
- 公共呈现参数- Portlet 2.0 对 portlet 规范的补充。这些比会话属性更有效,但需要在 portlet.xml 中进行额外配置。具体实现超出了这个问题的范围,但是你可以在互联网上找到很多关于这个主题的材料。
基于您提到的另一个 portlet 上的操作在一个 portlet 中显示内容的特定情况非常常见,公共呈现参数最适合这种情况。它可以在 Liferay 的本地资产发布者 + 导航(标签、类别)portlet 中观察到。
2. 布局模板
Liferay 中的布局模板解决了您描述的要求。Liferay 中捆绑了相当多的这些,它们与嵌套的 Portlets portlet 协同工作,允许您对许多复杂的页面布局进行建模。您可以为每页设置布局模板,在顶部栏中有一个用于选择它们的链接(对于管理用户)。您还可以创建自己的自定义布局模板,您可以在其中嵌入 portlet。再次,请在网络上搜索liferay embed portlet和liferay 布局模板- 有很多关于这两个主题的容易找到的详细信息(不能说每个 liferay 开发相关主题)。