从使用 Freemarker 的主题访问 portal-ext.properties 中定义的 属性 - Liferay 7

Access a property defined in portal-ext.properties from a theme that uses Freemarker - Liferay 7

我需要从主题的 portal_normal.ftl 文件中获取在 portal-ext.properties 中设置的 属性。使用 Liferay 7.

我所有的搜索都没有成功,但我不敢相信我是第一个有这种需求的人。

对于背景,我需要显示存储在全局站点中的网页内容。这需要在每个站点上显示,这就是它进入主题的原因。还需要内容编辑更新,所以内容无法收录到主题中。

我可以轻松显示网页内容,像这样使用 journalArticleLocalService

journalArticleLocalService.fetchArticle(10197,"1260480")

但我显然不想像这样硬编码组 ID 和文章 ID;出于其他原因,它们已经存储在 portal-ext.properties 中。

此外,我知道主题配置值,我将它们用于许多其他配置需求,但是那些需要为每个站点输入值并且我们的实施中有数百个站点,所以这不是一个选项。

提前感谢您提供的任何解决方案或建议。

属性是(据我所知)not available in Liferay's Freemarker Templates - 由于 Liferay 中的所有内容都试图逐步淘汰它们以支持基于 OSGi 的配置)我不建议在那里保持配置。任何更改都需要重新启动门户 - 正确的配置将使它们可以热更改。

但是,由于您现在遇到这种情况并且可能正在寻找快速解决方案:您可以创建一个 TemplateContextContributor 并为您的模板提供所需的值。