Addon中的Hybris组件未调用控制器

时间:2018-09-20 10:21:15

标签: java sap hybris

我创建了自定义表单组件。在智能编辑中添加它之后,它不会调用控制器来填写表单。 我在* -items.xml中创建了项目类型 MyComponentModel ,并在HAC部署中进行了检查。 我还在此answer

中添加了注释
@Controller("MyComponentController")
@RequestMapping(value = ControllerConstants.Actions.Cms.MyComponent)
public class MyComponentController extends AbstractAcceleratorCMSComponentController<MyComponentModel> {

映射值在我的ControllerConstants中,如下所示:

String _Prefix = "/view/"; // NOSONAR
String _Suffix = "Controller"; // NOSONAR
String MyComponent = _Prefix + MyComponentModel._TYPECODE + _Suffix; // NOSONAR

当我在页面上的smartedit中添加它时,将加载.jsp文件(我可以看到一些文本),但是由于未调用控制器

根据Hybris文档,控制器中的调用方法应为:

@Override
protected void fillModel(HttpServletRequest request, Model model, MyComponentModel component) {

但是它没有被调用,所以我无法填写表格。

<div class="span-20 last">
    I can see this text
    <div class="row item_container_holder">
        <c:if test="${not empty MyForm}">
          <%--this condition is false, form is empty--%>

请注意,我还在impex中添加了组件,我已经在HAC中更新了系统,我试图同步目录。

INSERT_UPDATE MyComponent; $contentCV[unique = true]; uid[unique = true]       ; name                               ; &componentRef
;; MyComponent ; MyComponent ; MyComponent

编辑:

*-items.xml

 <itemtype code="MyComponent" autocreate="true" generate="true" extends="SimpleCMSComponent"
              jaloclass="mypackage.b2c.core.jalo.components.MyComponent">
        <deployment table="MyComponents" typecode="15900"/>
        <attributes>
            <attribute qualifier="title" type="localized:java.lang.String">
                <persistence type="property" />
                <modifiers />
                <description>Localized title of the component.</description>
            </attribute>
        </attributes>
    </itemtype>

2 个答案:

答案 0 :(得分:1)

用于cms组件的控制器取决于项类型。您不能创建JspIncludeComponent并期望MyComponent的组件控制器被调用。

尝试以下方法:

INSERT_UPDATE MyComponent;...

答案 1 :(得分:1)

如您所说,您正在尝试在插件中创建此组件

确保您遵循我提到的here

  

您的评论:我将其放在路径/WEB-INF/views/responsive/cms上,但仍然得到一个   错误处理组件标签时出错。 currentComponent   [MyComponentModel(8796093136412 @ 1)]异常:File [/WEB-INF/views/responsive/cms/myComponent.jsp] not found

调试 AbstractCMSAddOnComponentController getView 方法以检查路径。

您必须将jsp添加到/youraddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/cms/myComponent.jsp中,以后将在构建过程中将其复制到stroefront扩展中。