To my knowledge, Liferay does lazy loading for portlets, so you cannot guarantee the portlet initialization order, as well as the call.
The problem you are facing is a common problem when you are working with multiple portlets on the same page.
Here the general way is that the configuration portlet (in your case portfolio A) should set the property in the processAction() method, and the getter portlet (portlet B) should take the value from doView() .
The reason is that you cannot guarantee the order of doView() , but if you shoot in actionURL, processAction() always called before doView ().
Thus, the attribute will be available for the rest of the portlet when rendering the interface. Guaranteed!
source share