簡體   English   中英

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

[英]JSP / Controller not found for custom component in Hybris addon

我正在運行 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,但沒有改變任何東西。

謝謝

確保

  • 您的控制器應該為插件內部的組件擴展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

除了 HybrisHelp 的出色說明外,遇到此問題的其他人很可能需要將此添加到 *-web-spring.xml

scope-resolver="de.hybris.platform.spring.IgnoreTenantScopeMetadataResolver"

所以它看起來像

<context:component-scan base-package="my.path.controllers" scope-resolver="de.hybris.platform.spring.IgnoreTenantScopeMetadataResolver" />

只有這個屬性,控制器才為我加載。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM