你在打开对话框吗?保存在 中的默认值dialog.xml
仅在编辑组件并保存后才会应用(即必须启用对话框——它们是对话框本身的默认值,而不是 JCR)。
如果您希望在创建组件时在 JCR 中保留一个默认值,cq:template.xml
请在组件中的dialog.xml
. 这将指定在创建时添加到节点中的默认属性。
例如,你可以有一个文件:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:cq="http://www.day.com/jcr/cq/1.0"
xmlns:jcr="http://www.jcp.org/jcr/1.0"
xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
jcr:primaryType="nt:unstructured"
defaultValue="myValue"/>
编辑:
对于模板中的默认值,请编辑以下.content.xml
文件/apps/[your-design]/[template-name]/.content.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root xmlns:sling="http://sling.apache.org/jcr/sling/1.0"
xmlns:cq="http://www.day.com/jcr/cq/1.0"
xmlns:jcr="http://www.jcp.org/jcr/1.0"
jcr:primaryType="cq:Template"
jcr:title="Content Page Template">
<jcr:content
jcr:primaryType="cq:PageContent"
sling:resourceType="foo/components/page/bar"
defaultValue="myValue"/>
</jcr:root>
但是,这些解决方案中的任何一个都只适用于新创建的内容(即新组件cq:template.xml
或新页面.content.xml
)。
对于现有页面,可以按照您的建议使用对话框中的默认值;但由于这些值仅在打开对话框并在对话框中的“确定”上保存到 JCR 时才会加载,因此需要用户编辑每个页面上的页面属性才能将值保存到 JCR。
如果这不合适,在 JSP/类中使用回退值可能是首选解决方案:resource.get(defaultValue, "myValue");