我的页面上大约有4个Portlet和2个web内容。在4个portlet中,一个是自定义portlet。我的要求就像我需要在最后加载我的自定义portlet。我知道我们可以通过在liferay-portlet.xml 中添加以下条目来设置
<render-weight>0</render-weight>
从救生筏舷窗-第6_2_0.dtd页我知道了,渲染权重的默认值为1。如果设置为小于1的值portlet是并行呈现的。如果设置为1或更大的值,则portlet是串行呈现的。呈现权重越大的Portlet优先级,并且将在呈现权重较低的Portlet之前呈现。
我的问题是,如何设置liferay Portlet的渲染权重。我需要在一些属性文件中进行输入吗?或者我可以使用控制面板来实现这一点。
不能保证渲染顺序,也不应该在渲染阶段更改任何状态-事实上,不会传播状态更改(例如公共渲染参数等),即使只是因为您甚至无法在RenderRequest/RenderResponse上更改它们。
如果您依赖于特定渲染顺序的假设,则应该更改体系结构,以便不再需要这种假设。如果您的portlet需要一些时间来呈现,您可以让它异步显示(例如,像内置的RSSportlet一样)。如果我没有记错的话,这是通过在liferay-portlet.xml
中将<render-weight>
设置为0
并将<ajaxable>
设置为true
来完成的