【问题标题】:CMS hippo property reading from .yaml file从 .yaml 文件中读取的 CMS hippo 属性
【发布时间】:2018-02-23 14:14:31
【问题描述】:

我需要阅读我的.yaml 文件之一中所述的属性(例如banner.yaml)。这些属性应该在 java 类中读取,以便可以访问它们并且可以明智地执行操作。

  1. 这是我的label.yaml 文件

    /content/documents/administration/labels:
    jcr:primaryType: hippostd:folder
    jcr:mixinTypes: ['mix:referenceable']
    jcr:uuid: 7ec0e757-373b-465a-9886-d072bb813f58
    hippostd:foldertype: [new-resource-bundle, new-untranslated-folder]
    /global:
    jcr:primaryType: hippo:handle
    jcr:mixinTypes: ['hippo:named', 'mix:referenceable']
    jcr:uuid: 31e4796a-4025-48a5-9a6e-c31ba1fb387e
    hippo:name: Global
    

我应该如何访问hippo:name 属性,它应该返回我Global 作为java 类之一中的值?

我们将不胜感激。

【问题讨论】:

    标签: hippocms


    【解决方案1】:

    创建一个扩展 BaseHstComponent 的类,它允许您使用 HST 内容 Bean 的

    创建一个会话对象,为此您需要拥有存储库的有效凭据。

    Session session = repository.login("admin", "admin".toCharArray());

    现在,创建 javax.jcr.Node 对象,为此您需要 .yaml 文件的 relPath。 在您的情况下,它将是 /content/documents/administration/labels/global

    Node node = session.getRootNode().getNode("content/articles/myarticle");

    现在,通过使用 getProperty 方法,您可以访问该属性。

    node.getProperty("hippotranslation:locale");

    可以参考链接https://www.onehippo.org/library/concepts/content-repository/jcr-interface.html

    【讨论】:

    • 这是获取低级别属性的好方法。我的回答集中在它是一个资源包文件。你的回答更笼统。虽然我会鼓励尽可能使用更高级别的抽象。
    【解决方案2】:

    您无法从应用程序中读取 yaml 文件。 yaml 文件在存储库中引导。您显示的数据代表一个资源包。您可以使用实用程序类 ResourceBundleUtils#getBundle

    以编程方式访问它

    或者在模板上使用 .然后就可以正常使用按键了。

    我强烈建议您在继续之前先阅读我们的教程。

    更多细节在这里: https://www.onehippo.org/library/concepts/translations/hst-2-dynamic-resource-bundles-support.html

    【讨论】:

    • 谢谢大家,有没有办法创建一个全局属性文件(键值对),可以在 .FTL 和 Java 类中读取或访问?
    • 点击我发布的链接。这些包可以在模板和代码中访问。
    • 感谢您的帮助将尝试这个
    猜你喜欢
    • 2018-10-27
    • 2021-08-28
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    • 2019-05-19
    相关资源
    最近更新 更多