Загружать контент из внешнего источника

Как лучше всего загружать контент из внешнего источника? Единственный подход, который я мог придумать, — это загрузить эти данные в компонент, а затем обновить bean-компонент бегемота (см. пример кода ниже). Но есть ли лучший способ? Есть ли какой-нибудь «постпроцессор бегемота» или «поставщик внешнего источника»?



    public class MyComponent extends BaseHstComponent {
        @Overrideenter code here
        public void doBeforeRender(final HstRequest request, final HstResponse response) throws HstComponentException {
            SalesDocument doc = (SalesDocument)request.getRequestContext().getContentBean();

            ExternalData externalData = externalDataSource.getExternalData(doc.getId());
            doc.setValue(externalData.getValue());

            if (doc == null) {
                response.setStatus(404);
                return;
            }

            request.setAttribute("document",doc);
        }

    }



person robert    schedule 30.06.2014    source источник
comment
Из какого источника вы пытаетесь получить данные?   -  person Jeroen    schedule 01.07.2014
comment
@ Jeroen - в настоящее время неизвестно. Но я предполагаю, что это будет либо сервис REST JSON, либо веб-сервис.   -  person robert    schedule 02.07.2014


Ответы (1)


На данный момент нет постпроцессора HippoBean или внешнего источника исходного кода. Я предполагаю, что в вашем случае вы хотите получить часть данных из удаленной системы и объединить эти два типа данных, чтобы вы могли использовать их как единое целое в своем шаблоне.

Я думаю, что приведенное выше решение, вероятно, самый простой способ. Или вы можете передать оба объекта в шаблон JSP/Freemarker и рендерить их при необходимости отдельно.

Я действительно думаю, что предоставление такого постпроцессора может быть полезным дополнением, особенно в таких случаях использования.

person Jeroen    schedule 04.07.2014
comment
Спасибо! Да, я придерживаюсь решения выше. С одной поправкой - вместо обновления HippoBean я просто добавлю объект внешних данных в запрос в качестве другого атрибута - простой и чистый подход. - person robert; 05.07.2014
comment
Я говорил об этом с разработчиками HST. Они добавят более удобную для разработчиков поддержку для этого, используя связанный компонент Spring ObjectConverter. Это будет частью версии 7.9.1 Hippo CMS. Дополнительную информацию см. на странице issues.onehippo.com/browse/HSTTWO-3013. - person Jeroen; 07.07.2014