首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不调用document的自定义文档类型的HippoCMS组件

不调用document的自定义文档类型的HippoCMS组件
EN

Stack Overflow用户
提问于 2015-03-24 02:27:30
回答 1查看 557关注 0票数 0

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

最后,我创建了一个组件和一个Bean来向模板公开文档数据,并调整了Hippo视频Trails第2部分中提出的步骤。

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

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

代码语言:javascript
复制
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:

代码语言:javascript
复制
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中的注释SampleCapsComponent.java应该向编译器提示内容节点应该用SampleCapsDocument bean包装--情况似乎并非如此,因为调试控制台打印的是Ping,而不是Pong。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-24 13:54:56

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29223992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档