Dependencies Liferay:可以通过Portlet定义初始化依赖项吗?

Dependencies Liferay:可以通过Portlet定义初始化依赖项吗?,dependencies,initialization,liferay,portlet,Dependencies,Initialization,Liferay,Portlet,我有两个Portlet:Portlet-A和Portlet-B Portlet-A进行一些数据初始化并将其存储在共享范围中 Portlet-B在初始化期间需要来自共享范围的数据(来自Portlet-A) 但是,我需要定义Portlet-A必须在Portlet-B之前启动(呈现) Liferay是否可以定义一些初始化顺序,或者类似portlet依赖关系的东西?据我所知,Liferay对portlet进行延迟加载,因此您无法保证portlet初始化的顺序以及portletdoView()调用 当您在

我有两个Portlet:Portlet-A和Portlet-B

Portlet-A进行一些数据初始化并将其存储在共享范围中

Portlet-B在初始化期间需要来自共享范围的数据(来自Portlet-A)

但是,我需要定义Portlet-A必须在Portlet-B之前启动(呈现)


Liferay是否可以定义一些初始化顺序,或者类似portlet依赖关系的东西?

据我所知,Liferay对portlet进行延迟加载,因此您无法保证portlet初始化的顺序以及portlet
doView()
调用

当您在一个页面上使用多个portlet时,您面临的问题是常见的

在这里,常见的解决方法是,setter portlet(在您的示例中是portlet A)应该在
processAction()
方法中设置属性,而getter portlet(portlet B)应该从
doView()中获取该属性

原因是,您无法保证
doView()
的顺序,但是,如果您触发actionURL,则总是在doView()之前调用
processAction()


因此,在呈现UI时,该属性将可用于所有其他portlet。保证

如果我理解正确,您需要在同一页面上呈现Portlet-A,然后呈现Portlet-B

然后您可以在
liferayportlet.xml
中定义它:
50
呈现权重越大,portlet呈现的速度越快,或者换句话说,如果portlet-B的
呈现权重小于portlet-A,那么它将在portlet-A之后呈现

有关渲染权重的详细说明,请参见

希望这有帮助