Liferay Portal学习笔记:portlet执行的两个阶段

Portlet有两个执行阶段:action阶段和render阶段。


portlet规范定义了每个portlet的请求,允许portal去区分什么时候一个action被执行(不会被重复)和什么时候一个内容页被打开(rendered):


Action:一次只能调用一个给一个portlet,是用户和Portlet交互的结果。在这个阶段,Portlet可以改变它的状态,比如改变portlet的用户属性。任何对数据库的插入和修改或者不被重复执行的操作都在这个阶段完成。


Render:在action阶段后(也有可能没有action阶段),可以被调用给所有的Portlets。需要指出的是,一个页面的portlet的render阶段的执行指令并不能被portlet规范保证。Liferay通过liferay-portlet.xml的render-weight来扩展这个规范。有更高的render-weight的portlet会比低render-weight的portlet先执行。



从Action阶段传送信息到Render阶段有两种方式:


第一种是通过renderParameter传送,调用setRenderParameter给request增加一个新的参数:actionResponse.setRenderParameter(“parameter-name”,"value");


在render阶段,这个值可以这样被读取:renderRequest.getParameter("parameter-name");


*当引用一个action URL时,URL里的参数只在action阶段可读。为了传递参数到render阶段,必须在actionRequest中读取它,然后调用setRenderParameter方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值