无法确定以下对象的编辑器定义:java.lang.String

2020-09-20 03:50发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)按照 https://help....

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


按照 https://help.hybris上的说明创建编辑器后。 com/6.3.0/hcd/8bd4c25286691014b3f9876ca5816926.html 并创建Java类,然后在backoffice-config.xml中使用编辑器(即editorArea:attribute xmlns =" http://www.hybris.com/cockpitng/component/editorArea " editor =" org.myextension.editor.simpletext"限定词 =" content"),但收到错误消息"无法确定java.lang.String的编辑器定义"。 似乎缺少一些步骤,因此系统没有可用的编辑器定义。 有人遇到过同样的问题吗? 谢谢

5条回答
95年老男孩
2020-09-20 04:34

嗨,

我检查它是否适用于6.0版。 我为定义的属性制作了自定义的simpletext编辑器,如下所示:设计名称

我在/cuppytrailbackoffice/backoffice/resources/widgets/editors/simpletext/definition.xml中创建了一个definition.xml文件,其中包含

  <?xml version =" 1.0" encoding =" UTF-8" standalone =" yes"?>
  

      我的简单文本编辑器
      简单文本编辑器
       java.lang.String 
     
      <!-更改程序包名称->
       com.hybris.cuppytrailbackoffice.editor.simpletext.MySimpleTextEditor 
     

  

  

我的MySimpleTExtEditor.java本地化在/cuppytrailbackoffice/backoffice/src/com/hybris/cuppytrailbackoffice/editor/simpletext/MySimpleTextEditor.java中,如下所示:

 包com.hybris.cuppytrailbackoffice.editor.simpletext;
 
 
  导入org.apache.commons.lang.StringUtils;
  导入org.zkoss.zk.ui.Component;
  导入org.zkoss.zk.ui。执行;
  导入org.zkoss.zk.ui.event.Event;
  导入org.zkoss.zk.ui.event.EventListener;
  导入org.zkoss.zk.ui.event.Events;
  导入org.zkoss.zul.Textbox;
 
  导入com.hybris.cockpitng.editors.CockpitEditorRenderer;
  导入com.hybris.cockpitng.editors.EditorContext;
  导入com.hybris.cockpitng.editors.EditorListener;
 
 
/**
   * @作者P
   *
   */
  公共类MySimpleTextEditor实现CockpitEditorRenderer 
  {
      @Override
      公共无效渲染(最终组件父级,最终EditorContext 上下文,最终EditorListener 侦听器)
      {
         //创建UI组件
          最终的Textbox editorView = new Textbox();
 
         //设置初始值
          editorView.setValue(context.getInitialValue());
 
         //设置可编辑状态
          如果(!context.isEditable())
          {
              如果(Executions.getCurrent()。getUserAgent()。contains(" MSIE"))
              {
                  editorView.setReadonly(true);
              }
              其他
              {
                  editorView.setDisabled(true);
              }
          }
 
         //处理事件
          editorView.addEventListener(Events.ON_CHANGE,新的EventListener ()
          {
              @Override
              public void onEvent(final Event event)引发异常//NOPMD
              {
                  handleEvent(editorView,event,listener);
              }
          });
          editorView.addEventListener(Events.ON_OK,新的EventListener ()
          {
              @Override
              public void onEvent(final Event event)引发异常//NOPMD
              {
                  handleEvent(editorView,event,listener);
              }
          });
 
         //将UI组件添加到组件树
          editorView.setParent(parent);
      }
 
    /**
       *处理编辑器视图组件上的视图事件。
       *
       * @参数编辑器视图
       *视图组件
       * @参数事件
       *要处理的事件
       * @参数监听器
       *编辑器侦听器将更改通知发送到
       */
      受保护的void handleEvent(最终文本框editorView,最终事件事件,最终EditorListener 侦听器)
      {
          最终String结果=(String)editorView.getRawValue();
          listener.onValueChanged(StringUtils.isEmpty(result)?"":结果);
          如果(Events.ON_OK.equals(event.getName()))
          {
              listener.onEditorEvent(EditorListener.ENTER_PRESSED);
          }
      }
  }

  

我在customextension-backoffice-config.xml中为我的属性设置编辑器,如以下代码所示:

  

  

注意使用在definition.xml中定义的编辑器ID,而不是使用具有类名的程序包,我仅在使用ant all和hybris重新启动后才检查它是否可以工作。

如果您面对这个问题,那么不妨重新考虑一下您的代码并将其与我提供的代码进行比较?

一周热门 更多>