向Websphere Portal中的所有portlet添加其他行为

时间:2015-01-15 13:34:50

标签: ajax jsp portlet websphere-portal ibm-was

我需要为我的所有portlet添加一些行为 它必须是一些ajax查询,检查一些条件,如果它是真的 - 显示消息 在第一次我决定为我的应用程序添加一些html到我的门户皮肤。在这个html中我添加了js-script来进行ajax查询。但我不知道上下文,发送查询,因为我们使用WSRP来访问我们的portlet。这就是为什么我无法获得WSRP上下文并进行查询 第二个想法是在所有portlet中添加公共jsp,并在这个jsp make逻辑中(从jsp我可以得到上下文)。但是,如果我将更改所有portlet jsp(使用标记“include”),那就不好了 接下来我的问题是:

  1. 如何向所有portlet添加行为?
  2. 如何在JS中获取WSRP上下文?
  3. 如何在不更改portlet jsp的情况下将jsp添加到所有portlet?
  4. P.S。无论如何,我无法触及门户网站的主题。

1 个答案:

答案 0 :(得分:1)

您应该能够在WebSphere Portal中使用global portlet filter。您可以使用其中的过滤器类创建WAR模块,并将其部署到运行WPS的应用程序服务器。它必须在plugin.xml中有一个名为WEB-INF的文件,它通过Portal中的eclipse插件点机制描述您的全局过滤器。您的类必须实现javax.portlet.filter.PortletFilter标准接口的任何子类型,这意味着您编写的代码是基于标准的。

如果实现全局portlet过滤器,则必须了解将为门户上调用的每个 portlet调用它 - 包括管理端口。为避免在您不希望的情况下运行您想要的逻辑,请检查每个请求的上下文路径。

来自WPS知识中心article

  

因为全局portlet过滤器会影响在中运行的所有portlet   给定portlet容器,包含在中的控制台模块   Integrated Solutions Console也已过滤。重要的是要   测试您的过滤器实现在控制台上的不良副作用   模块或portlet。一种方法是通过检查上下文来进行测试   过滤器逻辑中请求的路径。

我不知道WSRP portlet的上下文路径,但是一些SystemOut日志记录应该可以帮助您识别这个值是什么,并指向正确的方向。

最后,有an article with sample code描述门户维基上的技术。