我需要使用一些参数从JSR286(IBM)重定向到JSF2.0portlet。
我有网页独特的id和友好的网址也。
我已经尝试过response.sendRedirect()和requestDispatcher.forward(),但到目前为止没有成功。
请给我一些解决办法。
发布于 2015-08-13 08:47:59
要在portlets之间导航,不应该简单地转发或重定向页面,因为这不是一条路。即使在不同的页面上,portlet之间进行通信的正确方法是使用portlet间通信(IPC),通常称为portlet连接。
但是,这完全取决于您使用“JSR286()”的含义。portlet要么是遵循全局规范的JSR-286 portlet (对于所有供应商,IBM、Apache、Oracle、Liferay、.)或--使用IBM /iWidget,在最后一种情况下,如果我从文档中正确地记住了portlet,则无法连接portlet。
不管怎样,不管JSF与否,JSF2.0portlet仍然是一个JSR-286 portlet,所以在本例中您也可以使用正常事件,尽管我对JSF没有经验。这两个portlet都应该有一个portlet描述符,您可以在其中声明:
<event-definition>。请注意,当JSF位于单独的portlet应用程序中(在不同的portlet.xml文件中)时,必须使用XName,而不是普通名称。<supported-publishing-event>发布的事件(您的JSR-286portlet)<supported-processing-event> (JSF2.0portlet)之后,您可以使用方法从阶段的JSR-286Portlet中发送一个事件。
从JSF2.0portlet中,您仍然可以从上下文中获取PortletRequest/PortletResponse。如果您检查它是否是EventRequest的实例,则可以使用EventRequest.getEvent()检索该参数,从而允许您在portlets之间传递参数。
如果您的portlets位于单独的页面上,则必须获得WebSphere门户的管理(我假设您正在运行它,因为您是在讨论IBM),并为这些页面定义全局目标,以便事件可以跨页触发(否则,只有在同一页面中的portlets才能使用连接)。
https://stackoverflow.com/questions/31608591
复制相似问题