繁体   English   中英

Hippo CMS教程和MVC

[英]Hippo CMS tutorial and MVC

我是Hippo CMS的新手,并完成了本教程。 一切顺利。 但是,我有几个问题,希望得到答案。

1)我需要为我创建的每个文档创建一个新的控制器吗? 或者我可以在一个控制器中为每个文档重复以下代码行:

Simpledocument document = (Simpledocument) ctx.getContentBean();

    if (document != null) {
        // Put the document on the request
        request.setAttribute("document", document);
    }

对我来说,完全没有必要为每个文档创建一个新的控制器。 这可能会变得混乱。

2)完成的在Hippo CMS Console中创建动态hello world文档的步骤。 每个文档都必须遵循所有这些步骤吗? 我有一种感觉。

public class SimpleComponent extends BaseHstComponent {

    public static final Logger log = LoggerFactory.getLogger(SimpleComponent.class);

    @Override
    public void doBeforeRender(final HstRequest request, final HstResponse response) throws HstComponentException {
        super.doBeforeRender(request, response);
        final HstRequestContext ctx = request.getRequestContext();

        // Retrieve the document based on the URL
        HelloWorldTut document = (HelloWorldTut) ctx.getContentBean();
        HelloWorldList docList = (HelloWorldList) ctx.getContentBean();

        if (document != null) {
            //Put the document on the request
            request.setAttribute("doc", document);
            request.setAttribute("docList", docList);
        }
    }
}

当然,HelloWorldTut和HelloWorldList是两种不同的文档类型。

每个组件都需要一个控制器,一个页面可以包含多个组件。 但是,当然可以重用代码和组件。 根据从网址中匹配的站点地图项来呈现页面。 这被附加到定义组件(或通道管理器中使用的组件的容器)的页面配置中。 您甚至不需要每个文档一个sitemapitem。 使用通配符,您可以根据模式匹配网址。

2)对于每种文档类型。 如果必须为每个文档进行配置,它将很快变得难以管理。 如果您拥有全部一种类型的文档,则可以每次都匹配到相同的页面配置。 通过在sitemapitem中使用通配符并假定url与文档名称匹配,您可以匹配每个文档。

我今天在https://community.bloomreach.com/t/controller-for-every-view/744/3回答了类似的问题

如果不需要自定义处理,则无需控制器。 您可以在视图模板中使用<#assign document=hstRequestContext.contentBean />来获取内容。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM