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