[英]Portal/portlets programming - portlet linking/page flow
我正在编写我的第一个基于Portlet的应用程序(适用于liferay,但解决方案应与容器无关),并且我想知道人们如何解决为用户提供链接,从而“引导”到不同的Portlet(可能在门户网站的不同“页面”上) )。
虽然您可以在portlet中轻松地拥有不同的查看模式,但是如何链接到另一个portlet并(也可以)传递参数呢?
我并不是在谈论Portlet之间的简单通信,这才是我真正感兴趣的页面流。
示例:您的页面A带有显示新闻列表的portlet。 然后,您已按照配置的方式创建了页面B,我希望显示一个新闻项(例如,围绕它的不同portlet)
是否有通用解决方案链接到页面B,并告诉news-Detail-Portlet它应显示项目XYZ?
快速而肮脏的解决方案是通过新闻列表-portlet的编辑模式配置目标链接。 但这有几个缺点:-复杂的Portlet可能具有多个目标URL,这导致门户网站管理员需要大量配置工作-这些URL可能不遵循允许简单参数注入的方案
我有一个解决方案,但是这需要大量的努力,并且可能需要更改目标portlet,如果您使用3rd party portlet,这并非总是可能的。
我的解决方案如下所示:(草稿!)
Portlet会使用其Portlet ID在中央服务处注册,并且当Portlet想要链接到Portlet时,它可以基于符号名进行查找。 这将减轻管理员的痛苦,因为可以“自动发现” portlet。 该服务还可以提供一个UI,以基于源和目标Portlet连接Portlet。
可以更改对portlet的URL的生成可以通过对portlet的服务调用来解决,该portlet生成带有注入参数的URL作为一个整体并返回它。 对于无法更改的portlet,您必须附加参数并希望它能起作用。 : - /
有什么建议么? 有更简单的解决方案吗? 现有的解决方案?
谢谢!
帕特里克
对于JSR 286规范,可以将事件用于Portlet间的通信。 对于较旧的JSR 168,没有认可的方法。 如果您找到适合自己的方法,请使用它。
曼宁免费赠送一本旧书(需要注册)。 您可以在那里找到一些想法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.