liferay 6.2中set参数和set属性有什么区别?

时间:2016-11-23 10:44:13

标签: liferay portlet

我很困惑在什么时候使用, 以及使用这些参数的优缺点是什么。

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

所以你的问题是

Liferay 6.2中actionRequest.setParameter(...)actionRequest.setAttribute(...)之间的区别是什么?

由于两个原因,这个问题仍然存在错误

  1. ActionRequest不是Liferay特有的东西。它是任何门户需要实现的portlet API的一部分。
  2. ActionRequest
  3. 中没有setParameter(...)方法

    我认为你想要的是

    在门户网站API的上下文中,参数和属性之间有什么区别?

    • 参数是客户端发送给portlet的内容。它们通常作为URL的一部分(在GET HTTP方法的情况下在?符号之后)或包含在HTTP请求中(在POST HTTP方法的情况下)。您可以在portlet中使用getParameter(...)方法来读取客户端发送给portlet的参数的值。拥有setParameter(...)方法是没有意义的,因为您的portlet是这些参数的最终接收者。

    • 属性是您在当前操作请求的上下文中存储和读取数据的方法。如果您的portlet调用其他clasess,它可以为它们准备一些数据并通过setAttribute(...)方法将其存储在请求范围内。这个类可以稍后通过getAttribute(...)读取该数据并将数据存储在自己的稍后由portlet读取。处理完请求后,请求范围就消失了。

    最初可能令人困惑的一件事是actionResponse.setRenderParameter(...)方法。请注意,回复不是请求

    actionRequest.setAttribute(...)actionResponse.setRenderParameter(...)之间的区别是什么?

    要回答这个问题,您需要了解portlet的工作原理。客户端通过portlet容器与portlet交互。当他们向portlet P发送操作请求时,他们会通过容器发送它。容器然后

    • 操作请求发送到portlet P
    • P响应时,将呈现请求发送到该页面上的每个portlet,包括P

    因此P每个客户端请求从容器中重新发送两个请求(一个Action和一个Render)。在操作请求期间使用actionResponse.setRenderParameter(...)来告诉包含者使用即将到来的呈现请求传递此参数。这实际上是将信息从动作传递到渲染阶段的方式。