在 Hybris 插件中找不到自定义组件的 JSP/控制器

Joa*_*usa 3 components add-on hybris

我正在运行 Hybris 6.6 并且正在构建一个新的插件,它基本上是一个控制器和相应的 JSP。然而,在运行时,Hybris 没有找到控制器 bean 并在店面文件夹中搜索 JSP(它不存在,因为 JSP 位于店面插件文件夹中)。

我使用 extgen 创建了插件,然后也使用 ant 将其安装在店面中。

脚步:

  • 在从 SimpleCMSComponent 继承的 -items.xml 中创建组件
  • 创建继承自 AbstractCMSController 的控制器,
  • 在插件文件夹中创建 JSP,
  • 创建组件并通过 Imped 添加到页面槽中,
  • @Controller 的名称等于组件 + “Controller”

我已经调试了代码,当 Hybris 尝试通过 getBeanFactory().contains(controller) 查找是否有控制器时,它返回 false。如果我查看 bean 工厂返回的 bean 列表,则控制器的 bean 不在那里。

关于发生了什么的任何线索?我什至尝试在 -web-spring.xml 上显式创建控制器 bean,但没有改变任何东西。

谢谢

Hyb*_*elp 6

确保

  • 您的控制器应该扩展GenericCMSAddOnComponentControllerAbstractCMSAddOnComponentController用于插件内部的组件。
  • 注释控制器

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

  • 将您的 jsp 添加到*addon/web/webroot/*/view/*/cms/yourcomponentname.jsp. 路径参考 AbstractCMSAddOnComponentController 的 getView 方法

  • *-web-spring.xml 应该在资源文件夹/路径中

  • 应该为您的控制器添加组件扫描 *-web-spring.xml

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

  • *-web-spring.xml应该在 additionalWebSpringConfigs 属性中配置。参考你的插件 project.properties

    喜欢 myCustomstorefront.additionalWebSpringConfigs.MyAddonName=classpath:/XXX/web/spring/*-web-spring.xml