【问题标题】:Load content from external source从外部源加载内容
【发布时间】:2023-03-15 21:10:01
【问题描述】:

从外部来源加载内容的最佳方法是什么?我能想到的唯一方法是将这些数据加载到组件中,然后更新 hippo bean(参见下面的示例代码)。但是有更好的方法吗?是否有一些“河马豆后处理器”或“外部源提供者”?

public class MyComponent extends BaseHstComponent { @Overrideenter code here public void doBeforeRender(final HstRequest request, final HstResponse response) throws HstComponentException { SalesDocument doc = (SalesDocument)request.getRequestContext().getContentBean(); ExternalData externalData = externalDataSource.getExternalData(doc.getId()); doc.setValue(externalData.getValue()); if (doc == null) { response.setStatus(404); return; } request.setAttribute("document",doc); } }

【问题讨论】:

  • 您尝试从哪种来源获取数据?
  • @Jeroen - 目前未知。但我假设它将是 REST JSON 服务或 Web 服务。

标签: hippocms


【解决方案1】:

目前没有 HippoBean 后处理器或外部源提供程序。我猜在您的情况下,您想从远程系统获取一段数据,并且您想合并这两种类型的数据,以便您可以将它们用作模板中的一个单元。

我认为上述解决方案可能是最简单的方法。或者,您可以将这两个对象传递给 JSP / Freemarker 模板,并在需要时单独渲染它们。

我确实认为提供这样的后处理器可能是一个有用的补充,尤其是在这类用例中。

【讨论】:

  • 谢谢!是的,我坚持上面的解决方案。进行一次更正 - 而不是更新 HippoBean,我将简单地将外部数据对象添加为请求作为另一个属性 - 简单而干净的方法。
  • 我已经和 HST 的开发人员讨论过这个问题。他们将通过利用 Spring 有线 ObjectConverter bean 来为此添加更多对开发人员友好的支持。这将是 Hippo CMS 7.9.1 版本的一部分。请参阅issues.onehippo.com/browse/HSTTWO-3013 了解更多信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-17
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-21
相关资源
最近更新 更多