liferay - 从使用 Freemarker - Liferay 7 的主题访问在 portal-ext.properties 中定义的属性
问题描述
我需要从我的主题的 portal_normal.ftl 文件中获取在 portal-ext.properties 中设置的属性。使用 Liferay 7。
我所有的搜索都失败了,但我不敢相信我是第一个有这种需求的人。
对于背景,我需要显示存储在全局站点中的 Web 内容。这需要在每个站点上显示,这就是它进入主题的原因。它还需要由内容编辑器更新,因此内容不能包含在主题中。
我可以像这样使用 journalArticleLocalService 轻松显示 Web 内容
journalArticleLocalService.fetchArticle(10197,"1260480")
但我显然不想像这样硬编码组 ID 和文章 ID;由于另一个原因,它们已经存储在 portal-ext.properties 中。
另外,我知道主题配置值,我将它们用于许多其他配置需求,但这些需要为每个站点输入值,并且我们的实现中有数百个站点,所以这不是一个选项。
提前感谢您提供的任何解决方案或建议。
解决方案
属性(据我所知)在 Liferay 的 Freemarker 模板中不可用- 由于 Liferay 中的所有内容都试图逐步淘汰它们以支持基于 OSGi 的配置)我不建议在那里保持配置。任何更改都需要重新启动门户 - 正确的配置将使它们可以热更改。
但是,由于您现在遇到这种情况并且可能正在寻找一个快速的解决方案:您可以创建一个TemplateContextContributor并使所需的值可用于您的模板。
推荐阅读
- python - 为什么python必须生成完整范围来测试是否在范围内浮动?
- hive - Wince:重新启动后重置配置单元的值?
- scala - Scala:在每行的末尾添加值,文件中的最后一行除外
- react-native - 反应式编程与本机反应有关吗?
- ios - 在swift 4.0中将值附加到数组后如何重新加载tableView
- ios - 如何快速观察firebase数据库中子子节点的值变化?
- ios - 没有 gamescene.sks 文件的 SpriteKit
- ios - Swift4 将特定字符串转换为特定 Int
- php - 将 MySQL 查询更改为 Oracle
- openebs - 为什么应用程序在 Centos 和 OpenEBS 上使用 rancher/rke 处于容器创建状态?