在liferay中的请求分为renderRequest和actionRequest这两种请求的方式,portletRequest的子类有三个1renderRequest,2EventRequest3ClientDataRequest。是不是没有actionRequest?,不是的actionRequest继承的是ClientDataRequest这个接口。
ActionRequest的作用域是portlet在动作处理阶段,在这个阶段,portlet不知道自己要显示什么,也不知道要怎么显示。
RenderRequest的作用域是portlet的渲染阶段。在这个阶段portlet知道自己要显示什么,该怎么显示。
所以RenderRequest主要负责显示,ActionRequest主要负责处理数据。
在liferay怎么使用这两个东西啊,当我们在界面上使用<portlet:renderURL>和<defineObjects>调用的后台的方法是doView或者是doEdit方法。如果我们在界面上使用的标签是<portlet:actionURL>这个标签后台调用的方法是processAction方法,或者我们也可以自己在这个地方写自己的方法名,调用自己写的方法名就行了。
什么时候使用<portlet:renderURL>这个啊?跟ActionURL这个路径啊?
首先举一个例子,比如现在有一个学生信息管理系统。这个主界面上有增加,查新,修改,删除,点击查询的时候我们需要把数据还显示到这个页面上,这个时候我们就需要用<portlet:renderURL>,在后台的doView方法中获取你要得到的学生的Id,然后查出来数据就行了。
当你点击添加的时候,你需要跳转到一个新的界面的时候,你需要用actionURL这个路径,这个路径对应这个后台你自己写的方法,或者是默认的processAction这个方法。在新的页面上执行表单提交的操作的时候使用actionURL。
未完待续。。。。。