Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aem 在对话参与者步骤中获取有效负载_Aem - Fatal编程技术网

Aem 在对话参与者步骤中获取有效负载

Aem 在对话参与者步骤中获取有效负载,aem,Aem,我想在我的小部件的侦听器下的CQ5中的对话参与者步骤中获取有效负载。下面是我的对话 <?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:Di

我想在我的小部件的侦听器下的CQ5中的对话参与者步骤中获取有效负载。下面是我的对话

 <?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:Dialog" title="Changetemplate" xtype="dialog">
    <items jcr:primaryType="cq:WidgetCollection">
        <Template jcr:primaryType="cq:Panel">
            <items jcr:primaryType="cq:WidgetCollection">
                <Path jcr:primaryType="cq:Widget" fieldLabel="Select Template" id="mytemplate" name="./jcr:content/templatepath" xtype="textfield">
                  <listeners jcr:primaryType="nt:unstructured" afterrender="function(component){ var dialog = CQ.wcm.showTemplate('/content/geometrixx/en'); dialog.show(); }" /> 
                </Path>
            </items>
        </Template>
    </items>
    </jcr:root>


谢谢

这可以通过以下java代码来完成

public class MyParticipant implements ParticipantStepChooser {

    @Property(value = "An example.")
    static final String DESCRIPTION = Constants.SERVICE_DESCRIPTION; 
    @Property(value = "MyComapany")
    static final String VENDOR = Constants.SERVICE_VENDOR;
    @Property(value = " Participant Chooser Process")
    static final String LABEL=ParticipantStepChooser.SERVICE_PROPERTY_LABEL;

    private static final String TYPE_JCR_PATH = "JCR_PATH";

    public String getParticipant(WorkItem workItem, WorkflowSession workflowSession, MetaDataMap args) throws WorkflowException {
        WorkflowData workflowData = workItem.getWorkflowData();
        if (workflowData.getPayloadType().equals(TYPE_JCR_PATH)) {
            String path = workflowData.getPayload().toString();

        }
        return "";
    }
}
在ecma脚本中

var workflowData = graniteWorkItem.getWorkflowData();
    if (workflowData.getPayloadType() == "JCR_PATH") { 
        var path = workflowData.getPayload().toString(); }
但是如果您想在对话框中获得该路径,请尝试 1. <代码>CQ.utils.WCM.getPagePath()

如果上述解决方案不能解决您的问题,那么

  • 创建一个servlet
  • 从对话框中点击该servlet并获取该servlet中的有效负载(主要是当前路径)。 请参阅url以供参考