如何添加Liferay非组页面?

时间:2014-01-06 00:51:14

标签: liferay liferay-6

我想创建一个与用户或组无关的通知页面,类似于Liferay处理PayPal集成的方式。也许我根本没找到正确的网址。

如果您不熟悉Liferay如何处理PayPal集成,这里有一个摘要(假设您已经将购物portlet配置为使用PayPal)。

  • 当用户使用PayPal结账时,页面将重定向到 PayPal用于登录和付款处理。
  • 当Liferay重定向到PayPal时,它会将通知URL传递给 按PayPal规格支付PayPal。
  • 一旦用户批准付款,Paypal就会联系Liferay 此网址(类似http://myserver/c/shopping/notify)。
  • PayPal通过URL传递参数以验证金额和付款, 所以购物portlet可以将购买标记为已完成。

我尝试使用JSF在我的portlet中添加一个页面(/ myservice / confirm)和其他页面,并尝试按照http://myserver/c/myportal/confirm的方式调用它,没有运气。

我还需要做些什么吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您似乎需要一个不应该绑定到任何用户页面和组页面的自定义URL,例如/c/blogs/findEntry?entryId=?,其中liferay用于指向具有博客portlet的页面。

因此,如果是这种情况,您可以使用 Struts-action hook 创建一个。在liferay-hook.xml中,您可以创建一个URL

<struts-action-path>/portal/mycustom/customURL</struts-action-path>

现在,如果您点击网址http://myserver/c/portal/mycustom/customURL,系统会将您定向到您的自定义操作。在自定义操作中,您可以处理并指向附加到站点或用户的门户页面。

以下是使用struts-action hook的官方文档的链接:Adding and Overriding Struts Action


如果这不是您想要的,而是您想添加一个物理页面,您也可以在其中添加portlet。然后,如果没有附加到用户,用户组或站点(组),页面就不可能。

此外,如果您想直接使用URL显示JSP,那是不可能的。因为portlet是显示JSP或JSF的portlet。您仍然可以执行以下操作以感觉这是一个单独的页面:

  1. 因此,您可以创建隐藏页面,该网页可能位于包含网址/myNotify的访客网站中。
  2. 让您的portlet在该页面中使用整页布局。
  3. 创建一个struts操作或filter-hook来拦截您的自定义网址。
  4. 处理请求并使用portlet重定向到页面/myNotify,您的portlet将显示通知消息。
  5. 希望这有帮助。