Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 Portlet知道同一页面上的其他Portlet_Jsf 2_Portlet_Websphere Portal_Jsr286 - Fatal编程技术网

Jsf 2 Portlet知道同一页面上的其他Portlet

Jsf 2 Portlet知道同一页面上的其他Portlet,jsf-2,portlet,websphere-portal,jsr286,Jsf 2,Portlet,Websphere Portal,Jsr286,我的任务是开发一个“ActionPortlet”,其中包含同一页面上所有其他portlet的操作(例如h:commandLink)。现在,只有当相应的portlet实际存在于同一页面上时,这些操作才可用 portlet是否可以“知道”哪些其他portlet位于同一页面上,而不必首先处理ActionRequest 您好。我对您的问题的直觉反应是,portlet应该足够独立,不需要页面上的其他portlet就可以正常工作。因此,在不知道为什么需要这样做的情况下,这种设计选择似乎有一些固有的缺陷。Po

我的任务是开发一个“ActionPortlet”,其中包含同一页面上所有其他portlet的操作(例如h:commandLink)。现在,只有当相应的portlet实际存在于同一页面上时,这些操作才可用

portlet是否可以“知道”哪些其他portlet位于同一页面上,而不必首先处理ActionRequest


您好。

我对您的问题的直觉反应是,portlet应该足够独立,不需要页面上的其他portlet就可以正常工作。因此,在不知道为什么需要这样做的情况下,这种设计选择似乎有一些固有的缺陷。Portlet A不应该需要处理Portlet B的ActionRequests。看起来您只是试图弯曲、破坏和滥用Portlet规范,但我承认,在用例允许的情况下,我违反了设计规则

作为替代方案,我可能建议您的portlet允许其他portlet告诉您的portlet他们需要做什么,而不是您的portlet必须询问。您可以在客户端执行此操作,其中每个portlet在页面加载时运行一点JavaScript,以通知您的portlet需要做什么

回到你真正的问题上来。我没有深入研究文档,但是WebSpherePortal提供了一个API,可以帮助确定您需要什么。下面是IBM关于该主题的文档链接


SPI模型是portlet如何访问门户的页面结构、导航状态和许多其他相关内容。我希望模型SPI能够告诉您与当前portlet位于同一页面上的其他portlet。一旦您在页面上获得了其他portlet的列表,您将决定如何确定需要呈现哪些其他链接。

谢谢您的回答。根据这篇文章,我已经用RenderFilter和IBMAPI找到了一些方法:我知道这可能违反了标准,但我被告知要这么做,所以我至少要想出一个方法。