如何将cq:listener添加到组件

时间:2015-06-30 01:47:28

标签: osgi cq5 aem

我正在尝试将cq:listener https://docs.adobe.com/docs/en/cq/5-5/developing/components/edit_config.html#cq:listeners添加到我的组件中,以便在选择资源并单击“确定”后,页面将刷新。

这是组件在我选择资产的屏幕上的外观,然后单击“确定”。

enter image description here

在我的代码中,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"
    jcr:primaryType="cq:Dialog"
    xtype="dialog">
    <items
        jcr:primaryType="cq:Widget"
        xtype="tabpanel">
        <items jcr:primaryType="cq:WidgetCollection">
            <tab1
                jcr:primaryType="cq:Panel"
                title="Tab">
                    <items
                        jcr:primaryType="cq:WidgetCollection">
                            <asset-reference
                                jcr:primaryType="cq:Widget"
                                fieldLabel="Foo Bar:"
                                fieldDescription="Select the asset under /content/dam/foo-sync"
                                name="./fileReference"
                                xtype="pathfield"
                                rootPath="/content/dam/evernote-sync"/>
                    </items>
            </tab1>
        </items>
    </items>
</jcr:root>

_cq_editConfig.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="cq:EditConfig">
    <cq:dropTargets jcr:primaryType="nt:unstructured">
        <fileReference
            jcr:primaryType="cq:DropTargetConfig"
            accept="[text/.*]"
            groups="[media]"
            propertyName="./fileReference"/>
    </cq:dropTargets>
</jcr:root>

2 个答案:

答案 0 :(得分:3)

创建名为cq:listeners的节点,并键入cq:EditListenersConfig作为cq:EditConfig节点的子节点。将属性afteredit添加到值为REFRESH_PAGE的新创建的节点,以在编辑组件后刷新页面。默认情况下,此值为REFRESH_SELF,因此只有组件在编辑后才会刷新,而不是整个页面。

_cq_editConfig.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="cq:EditConfig">
    <cq:listeners jcr:primaryType="cq:EditListenersConfig"
        afteredit="REFRESH_PAGE"/>
    <cq:dropTargets jcr:primaryType="nt:unstructured">
        <fileReference
            jcr:primaryType="cq:DropTargetConfig"
            accept="[text/.*]"
            groups="[media]"
            propertyName="./fileReference"/>
    </cq:dropTargets>
</jcr:root>

更多细节可以在link mentioned in the question本身找到。

答案 1 :(得分:1)

You might try the following in your _cq_editConfig.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" xmlns:nt="http://www.jcp.org/jcr/nt/1.0" jcr:primaryType="cq:EditConfig">
	<cq:listeners
	    jcr:primaryType="cq:EditListenersConfig"
	    afterdelete="REFRESH_PAGE"
	    afteredit="REFRESH_PAGE"
	    afterinsert="REFRESH_PAGE"
	    afterMove="REFRESH_PAGE"/>
</jcr:root>