【问题标题】:Hippo CMS tutorial and MVCHippo CMS 教程和 MVC
【发布时间】:2018-10-04 14:21:04
【问题描述】:

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

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

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

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

对我来说,我必须为每个文档创建一个新控制器,这完全没有意义。这可能会变得一团糟。

2) 在 Hippo CMS 控制台中创建动态 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 是两种不同的文档类型。

【问题讨论】:

标签: java hippocms


【解决方案1】:

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

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

【讨论】:

  • 第二个是有道理的。我在上面发布了一个示例。我只是想知道我所做的是否可以接受。
  • 您正在检索相同的内容 bean 两次并用作不同的对象。查看我们的标准组件onehippo.org/library/setup/hst-components/overview.html。您可以在大多数用例中使用或扩展它们。
【解决方案2】:

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

如果您不需要自定义处理,则不必拥有控制器。您可以使用<#assign document=hstRequestContext.contentBean /> 在您查看模板以获取内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-05
    • 2015-05-04
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多