If you want to add metadata to an HTML document from within a JSP template, include the JSP tag
cm:previewScripts
in a template that is called once for each HTML page.
You can then use the tag cm:metadata
each time metadata is to be assigned to an HTML DOM node.
The tag cm:metadata
checks whether metadata rendering is enabled (either globally or locally
for this tag occurrence). If enabled, the given metadata is serialized as a JSON
string. In the rendered document, this string is escaped accordingly and output as the value of the custom
HTML attribute data-cm-metadata
of the HTML element that the metadata is attached to.
Example:
<cm:metadata value="${self.content}" />
To allow assigning multiple metadata nodes to the same DOM node, multiple nested
cm:object
tags have to be used instead of the value
attribute.
cm:object
has only a value attribute and is used for list elements.
<cm:metadata> <cm:object value="${self.content}"/> <cm:object value="properties.title"/> </cm:metadata>
Example 4.13. Content With Property
The tag cm:property
can be nested into cm:metadata
, cm:object
or cm:property
to create a name-value pair.
Again, the value can be specified either as an attribute or through nested tags.
<cm:metadata> <cm:property name="cm_preferredWidth" value="1280"/> <cm:property name="cm_responsiveDevices"> ... <cm:property name="mobile_portrait"> <cm:property name="width" value="320"/> <cm:property name="height" value="480"/> <cm:property name="isDefault" value="${true}"/> <cm:property name="order" value="1"/> </cm:property> </cm:property> </cm:metadata>
Example 4.14. Responsive Device Slider Metadata