ActionRequest与RenderRequest

时间:2015-02-25 09:47:33

标签: liferay portlet

我已阅读here,actionrequest仅在行动阶段有效,而RenderRequest仅在呈现阶段有效。但是,如果我设置actionREquest.setAttribute(“object”,myobject),我可以从我的JSP访问这个对象,我理解渲染阶段是对的吗?这怎么可能,这与我链接的答案有什么关系?

2 个答案:

答案 0 :(得分:1)

虽然ActionRequestRenderRequest是不同的类/对象,但它们都与相同的请求处理周期有关。主要区别在于ActionRequest允许您更改状态,RenderRequest不再存在。

虽然页面上只有一个portlet可以处理一个操作(每个HTTP请求),但页面上的所有portlet通常都会呈现为构成页面的整个标记。这就是动作/渲染的分离带给你的portlet世界。 Servlet没有这个,因为无论如何,一个servlet总是用于在每个请求上呈现整个页面。 Portlet可以渲染(他们经常这样做)并且可以改变状态(他们通常在动作阶段进行渲染)

答案 1 :(得分:0)

在动作阶段之后,你不应忘记,portlet生命周期继续向渲染阶段发展。 尝试在此博文中观看图片(我通过谷歌搜索找到的第一个):http://haitaoblog.blogspot.it/2011/05/portlets-portal.html

因此JSP可以在请求中访问这两个属性。

另一方面,如果您需要在渲染阶段访问动作RENDER参数,则必须在动作代码中设置

actionResponse.setRenderParameter("parameter-name", "value");