问题描述
我在后台的 a 部分添加了一个新属性。 我添加了一个日期时间属性
<editorArea:attribute qualifier="DateCutOffTime" defaultEditor="com.hybris.cockpitng.editor.defaulttime">
<editorArea:editor-parameter>
<editorArea:name>timeFormat</editorArea:name>
<editorArea:value>short</editorArea:value>
</editorArea:editor-parameter>
<editorArea:editor-parameter>
<editorArea:name>timeZoneReadOnly</editorArea:name>
<editorArea:value>false</editorArea:value>
</editorArea:editor-parameter>
<editorArea:editor-parameter>
<editorArea:name>selectedTimeZone</editorArea:name>
<editorArea:value>GMT+01:00</editorArea:value>
</editorArea:editor-parameter>
<editorArea:editor-parameter>
<editorArea:name>displayedTimeZones</editorArea:name>
<editorArea:value>GMT-12:00,GMT-11:00,GMT-10:00,GMT-09:30,GMT-09:00,GMT-08:00,GMT-07:00,GMT-06:00,GMT-05:00,GMT-04:30,GMT-04:00,GMT-03:30,GMT-03:00,GMT-02:00,GMT-01:00,GMT+00:00,GMT+01:00,GMT+02:00,GMT+03:00,GMT+03:30,GMT+04:00,GMT+04:30,GMT+05:00,GMT+05:30,GMT+05:45,GMT+06:00,GMT+06:30,GMT+07:00,GMT+08:00,GMT+08:30,GMT+08:45,GMT+09:00,GMT+09:30,GMT+10:00,GMT+10:30,GMT+11:00,GMT+12:00,GMT+12:45,GMT+13:00,GMT+14:00</editorArea:value>
</editorArea:editor-parameter>
</editorArea:attribute>
解决方法
您似乎混合了两种不同类型的配置
这一行是错误的:
<editorArea:attribute qualifier="DateCutOffTime" defaultEditor="com.hybris.cockpitng.editor.defaulttime">
您想对特定属性(限定符)使用编辑器。为此,您需要使用 editor
而不是 defaultEditor
编写标头。如果您查看相应的 xsd 验证,您会注意到 defaultEditor 不是有效的配置选项。将此更改为 editor
,它应该可以工作。 (假设 DateCutoffTime 是您的一个对象的属性而不是类型,如果它是类型,请查看答案的第二部分)
<editorArea:attribute qualifier="DateCutOffTime" editor="com.hybris.cockpitng.editor.defaulttime">
对应的xsd:
<xs:complexType name="attribute">
<xs:complexContent>
<xs:extension base="abstractPositioned">
<xs:sequence>
<xs:element name="editor-parameter" type="parameter" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="qualifier" type="xs:string" use="required"/>
<xs:attribute name="label" type="xs:string" use="optional"/>
<xs:attribute name="visible" type="xs:boolean" use="optional" default="true"/>
<xs:attribute name="readonly" type="xs:boolean" use="optional" default="false"/>
<xs:attribute name="editor" type="xs:string" use="optional"/>
<xs:attribute name="merge-mode" type="xs:string" use="optional"/>
<xs:attribute name="description" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
(完成)
据我所知,defaultEditor 仅用于为类型定义默认编辑器。然后您需要指定要为其创建默认编辑器的类型。这也需要放在 .zul 文件中,而不是放在常规的后台配置文件中。
<editor id="textEditor" type="java.lang.String" defaultEditor="com.hybris.cockpitng.editor.defaulttext"/>