arrays - Portlet 事件发送对象数组

标签 arrays events liferay portlet

我们有多个项目,其中包含多个 portlet,需要在它们之间发送对象数组。

我们的情况:

其中一个 portlet 就像一个“Master-portlet”,它将负责所有 REST 调用并使用 json 数据并将其解析为 Java 对象。 所有其他 portlet 将接收一个对象数组并将它们显示给用户。

我们的想法和解决方案:

我们希望通过事件发送对象数组来实现这一点。其中一个“较小”的 portlet 将向“主 portlet”发送一个事件,然后“主 portlet”将用一个新事件进行响应,并将正确的对象数组发回。

我们的问题:

我们不知道如何通过事件发送对象数组。这可能吗? 我们也不确定这是否是解决此问题的正确方法。事件是否会发送更多数据? 对于我们的案例有更好的解决方案吗?也许实现一个数据库并且所有 portlet 都从那里获取信息会更好?

最佳答案

将 portlet 事件(和 portlet)视为应用程序的 UI 层。据此判断你来回发送的数据量是否有意义。另外,如果您将 portlet 紧密耦合,那么您只是隐藏了它们只能一起运行的事实 - 至少是一个值得怀疑的想法。您宁愿希望它们对常见情况(事件)使用react,但不依赖于可用的特定事件源(主 portlet)。

话虽这么说:作为 JSR-286 事件的有效负载发送的数据越复杂,当您的 portlet 位于不同的 Web 应用程序中时,您就越容易遇到类加载问题。如果您将自己限制为 Java native 类型(例如 StringMap 等),您将忽略类加载器的问题。

通常,您希望传达对当前上下文的更改(例如选择的新“当前客户”和标识符),但不是所有特定数据(例如新客户的姓名和订单历史记录)。无论如何,其余数据通常都来自业务层。

这并不是说您绝对不能耦合您的 portlet - 只是我更喜欢让它们非常松散地耦合,这样我就可以添加单独的小 portlet 来替换我昨天想到的那些 portlet。

如果您有时间,我已经介绍了其中的一些内容 in a webinar去年,我希望这可以澄清我在这个快速回答中过于模糊的地方。

关于arrays - Portlet 事件发送对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412083/

相关文章:

arrays - 构造一个内部包含条件逻辑的 Ruby 数组

javascript - netsuite suitescript 2.0版如何设置多选字段的值?

javascript - 创建新数组和清除长度之间的区别

python - 使用 numpy 将 csv 加载到二维矩阵中以进行绘图

javascript - 删除 node.js 事件,监听器也消失了吗?

javascript - jquery 关闭未被触发

liferay - 如何根据 portlet 中的值在 liferay 主题中创建动态项目

java - portlet Java 类实例是否与 1 :1 with Liferay portlet web "instances"? 相关

javascript - 在 JavaScript 中,我可以阻止 onmouseup 事件被触发,并将其替换为我自己的事件吗?

autocomplete - Liferay AUI 自动完成限制选择