Hippo CMS учебник и MVC - PullRequest
       187

Hippo CMS учебник и MVC

0 голосов
/ 04 октября 2018

Я новичок в Hippo CMS и прошел обучение.Все прошло гладко.Но у меня есть пара вопросов, и я надеялся получить ответы.

1) Нужно ли создавать новый контроллер для каждого документа, который я создаю?Или я могу просто повторить следующую строку кода для каждого документа в одном контроллере:

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

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

Мне просто не имеет смысла создавать новый контроллер для каждого отдельного документа.Это может привести к путанице.

2) Шаги, сделанные для создания динамического документа hello world в Hippo CMS Console.Нужно ли выполнять все эти шаги для каждого документа?У меня такое чувство, что я ..

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 - это два разных типа документов.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

У меня был похожий вопрос, на который сегодня был дан ответ https://community.bloomreach.com/t/controller-for-every-view/744/3

Вам не нужен контроллер, если вам не нужна пользовательская обработка.Вы можете использовать <#assign document=hstRequestContext.contentBean /> в шаблоне просмотра, чтобы получить контент.

0 голосов
/ 04 октября 2018

каждый компонент нуждается в контроллере, и страница может иметь несколько компонентов.Но, конечно, вы можете повторно использовать код и компоненты.Страница отображается в зависимости от того, какой элемент карты сайта сопоставлен с URL-адресом.Это связано с конфигурацией страницы, которая определяет компоненты (или контейнеры для компонентов, используемых в менеджере каналов).Вам даже не нужен sitemapitem для каждого документа.Используя подстановочные знаки, вы можете сопоставить URL-адреса на основе шаблонов.

2) Для каждого типа документа.Если вам придется настраивать каждый документ, он быстро станет неуправляемым.Если у вас есть все документы одного типа, вы можете каждый раз соответствовать одной и той же конфигурации страницы.Используя подстановочные знаки в sitemapitem и предполагая, что URL совпадает с именем документа, вы можете сопоставить каждый документ.

...