CMS hippo 属性 从 .yaml 文件读取

CMS hippo property reading from .yaml file

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

  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 属性 应该 return 我 Global 作为 java class 之一的值?

我们将不胜感激。

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

以编程方式访问它

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

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

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

创建一个扩展 BaseHstComponent 的 class,它允许您使用 HST Content 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");

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