当前位置: 首页 > 知识库问答 >
问题:

Liferay portal的通用gridview

康锦
2023-03-14

希望你一切顺利。

这是我的设想。我有多(20)个Liferay Portlet,它们使用网格/表格来显示数据。

每个portlet根据不同的标准检索数据。

但是,网格与一些常见的功能相同,例如过滤、分页、数据导出等。

目前,每次我们必须对网格样式进行更改时,我必须对20个Portlet中的每一个进行更改。这是非常低效的,而且会浪费很多时间。

因此,我想知道是否有可能创建一个通用的“portlet”或“composite”,以便它可以显示来自多个portlet的数据?更详细地说,通用portlet/composite将包含网格、过滤、分页、导出等功能。

这个通用portlet/复合将从各种portlet接收数据并简单地显示它。

因此,如果我需要对网格样式进行任何更改,只在一个地方进行更改就足够了。

有人经历过这样的场景吗?

你有什么解决办法吗?

提前感谢您的帮助。

共有2个答案

钱弘壮
2023-03-14

最好的解决方案是使用一个portlet来检索所有数据,并使用一个接口和不同的实现来概括数据检索,而不是使用不同的portlet。

不过您可以尝试使用Liferay的Interportlet Communications设施来提供来自源portlet的数据到目标portlet-http://www.liferay.com/community/wiki/-/wiki/Main/Inter-portlet通信

但它也有自己的警告——您要么必须使用AJAX或JS事件在浏览器中提交数据,要么必须使用在服务器端工作的JSR-286(Portlets 2.0)事件,但需要一个事件来触发一个动作,以使事件发生(即使用动作URL打开portlet,而不是呈现URL)。这里有更多信息-http://www.liferay.com/community/wiki/-/wiki/Main/Portlet到Portlet通信

冉锋
2023-03-14

如果您只需要按不同的标准检索数据,具有导出数据、打印、分页等功能,您不需要20个不同的portlet您可能会使用一个portlet并拥有20个it实例,每个都将配置为enable.export、enable.print、data.criteria等等。在portlet内部,您的逻辑将构建网格和您需要的数据。

如果您真的需要通用Portlet,您可以尝试将所有20个Portlet放在一个Portlet中。战争您只需包含一些portlet、扩展控制器等中常见的jsp。

甚至更多...如果您需要在portlet之间发送数据,您可以创建javascript控制器,这些控制器将相互发送事件,通过Ajax获取数据并填写您的jsps(在这种情况下,您可能会使用一些模板)。如果有什么不清楚,请询问。

 类似资料:
  • 通用通知消息 消息体 ChannelMessage 例子 Swift: NotificationCenter.rokidsdk.addObserver(self, selector: #selector(handleChannelMsgsNotification(_:)), name: NSNotification.Name(rawValue: SDKNotificationName.Channe

  • 问题内容: 有没有办法找到泛型的类类型? 以上内容绝对无法编译。 问题答案: 泛型是编译时功能。泛型在编译时添加检查,这在运行时可能没有任何意义。这是一个例子。您只能检查所引用对象的类型,它可能是代码中的超级类型。如果要传递类型T,则必须明确地执行此操作。 要么 注意:类型可能不相同,

  • 问题内容: 使用泛型时,我在Java中有一个小问题。我有一堂课: 在方法中,我需要获取类型名称。有没有办法找到字符串使用? (如果创建了,我希望能够做到这一点- 我必须使用通用性,因为我的方法之一必须返回)。 这似乎很容易,但是我不知道如何去做。 问题答案: 由于 类型擦除, 您通常无法执行此操作-的实例不 知道 的类型。如果需要,一种方法是使用类型文字: 然后: 这很丑陋,但这就是类型擦除的作用

  • 类属性 $state state值,调用getAuthUrl方法后可以获取到 $scope 授权权限列表 $result 接口调用结果 $accessToken AccessToken,调用相应方法后可以获取到 $openid openid,调用相应方法后可以获取到

  • 问题内容: 在haskell中,您可以执行以下操作: 我试图在Swift中做类似的事情。到目前为止,我没有运气写过这些代码。 那么,这根本不可能很快吗?如果还有其他方法可以实现此行为? 更新: 似乎Swift 3现在支持通用类型别名 https://github.com/apple/swift/blob/master/CHANGELOG.md 问题答案: 从Swift 3.0开始可以使用泛型。这应

  • Locality Node Endpoint Metadata RuntimeUInt32 HeaderValue HeaderValueOption ApiConfigSource ApiConfigSource.ApiType (Enum) AggregatedConfigSource ConfigSource TransportSocket RoutingPriority (Enum) Re