JSP / Controller не найден для пользовательского компонента в дополнении Hybris - PullRequest
0 голосов
/ 27 августа 2018

Я использую Hybris 6.6 и создаю новый аддон, который в основном является контроллером и соответствующим JSP.Однако во время выполнения Hybris не находит компонент контроллера и ищет JSP в папке витрины (ее там нет, поскольку JSP находится в папке дополнений витрины).

Я создал аддон с помощью extgen, изатем установил его в витрине, используя также муравей.

Шаги:

  • Создан компонент в -items.xml, наследуемый от SimpleCMSComponent
  • Создан контроллер, наследующий от AbstractCMSController,
  • Создан JSP в папке аддона,
  • Создан компонент и добавлен в слот страницы через Imped,
  • @ Контроллер имеет имя, равное компоненту + «Контроллер»

Я отладил коди когда Hybris пытается найти, есть ли контроллер через getBeanFactory (). содержит (контроллер), он возвращает false.Если я посмотрю на список bean-компонентов, которые возвращает фабрика bean-компонентов, то bean-компонента для контроллера там нет.

Есть какие-нибудь подсказки о том, что происходит?Я даже пытался явно создать компонент контроллера в файле -web-spring.xml, но ничего не изменилось.

Спасибо

1 Ответ

0 голосов
/ 27 августа 2018

Убедитесь, что

  • Ваш контроллер должен выдвигать GenericCMSAddOnComponentController или AbstractCMSAddOnComponentController для компонента внутри аддона.
  • Аннотируйте контроллер с помощью

    @Controller(YourComponentController) @RequestMapping(value="/view/YourComponentController")

  • Добавьте свой JSP к *addon/web/webroot/*/view/*/cms/yourcomponentname.jsp.Обратитесь к методу getView AbstractCMSAddOnComponentController, чтобы указать путь

  • *-web-spring.xml в папке ресурсов / путь

  • компонент сканирования должен быть добавлен для вашего контроллерав *-web-spring.xml

    <context:component-scan base-package="my.path.controllers"/>

  • *-web-spring.xml есть в дополнительных свойствах WebSpringConfigs.См. Ваш аддон project.properties

    как myCustomstorefront.additionalWebSpringConfigs.MyAddonName=classpath:/XXX/web/spring/*-web-spring.xml

...