gpt4 book ai didi

java - 用于自定义文档类型的 HippoCMS 组件不调用文档 bean

转载 作者:行者123 更新时间:2023-12-02 04:51:11 26 4
gpt4 key购买 nike

我在 HippoCMS 7.9 站点中创建了一个名为 SampleCaps 的复合文档类型,并开始为其构建一个模板。在此过程中,我添加了 hst:sitemap 节点、一对嵌套的 hst:pages 节点和一个 hst:templates 节点。我还向 hippo:namespaces/barcom/SampleCaps 添加了适当的 type 属性。

最后,我创建了一个组件和一个 Bean 以将文档数据公开给模板,并调整了 Hippo Video Trails 第 2 部分中介绍的步骤。

令我沮丧的是,虽然组件正确加载,但 Bean 从未加载(或者至少,它的 getter 从未被调用。)我的组件和 bean 如下:

site/src/main/java/com/footech/barcom/components/SampleCapsComponent.java:

package com.footech.barcom.components;

import com.footech.barcom.beans.SampleCapsDocument;
import org.hippoecm.hst.content.beans.standard.HippoBean;
import org.hippoecm.hst.component.support.bean.BaseHstComponent;
import org.hippoecm.hst.core.component.HstComponentException;
import org.hippoecm.hst.core.component.HstRequest;
import org.hippoecm.hst.core.component.HstResponse;

public class SampleCapsComponent extends BaseHstComponent {
@Override
public void doBeforeRender(final HstRequest request, final HstResponse response) throws HstComponentException {
SampleCapsDocument document = request.getRequestContext().getContentBean();
request.setAttribute("document", document);
System.out.println("Ping"); /* prints "Ping" to console */
}
}

site/src/main/java/com/footech/barcom/beans/SampleCapsDocument.java:

package com.footech.barcom.beans;
import java.util.Calendar;

import org.hippoecm.hst.content.beans.Node;
import org.hippoecm.hst.content.beans.standard.HippoHtml;
import org.onehippo.cms7.essentials.dashboard.annotations.HippoEssentialsGenerated;

@HippoEssentialsGenerated(internalName = "barcom:SampleCapsdocument")
@Node(jcrType = "barcom:SampleCapsdocument")
public class SampleCapsDocument extends BaseDocument {

@HippoEssentialsGenerated(internalName = "barcom:title")
public String getTitle() {
System.out.println("Pong"); /* This never triggers */
return getProperty("barcom:title");
}
}

据我了解,SampleCapsComponent.java 中的注释 @Node(jcrType = "barcom:SampleCapsdocument") 应该提示编译器内容节点应该用 SampleCapsDocument bean 包装 - 这确实情况似乎并非如此,因为调试控制台打印 Ping 而不是 Pong。我做错了什么?

最佳答案

您需要调用 document.getTitle(),因为值是延迟加载的。

关于java - 用于自定义文档类型的 HippoCMS 组件不调用文档 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29223992/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com