AEM / CQ多图像分量

时间:2016-02-23 19:39:28

标签: adobe cq5 aem

我正在尝试创建一个包含两个图像和一些信息的组件,我创建了对话框,设法创建节点并上传图像。一切正常,但我无法找到获取图像路径或渲染它的方法。

这是我到目前为止所做的:

<%@ page import="com.day.text.Text,
               com.day.cq.wcm.foundation.Image,
               com.day.cq.commons.Doctype" %>
<%@include file="/apps/platform/aem-core/global/global.jsp"%>

<%
    Image image = new Image(resource, "image1");

    out.println(image);

    image.draw(out);
%>

<h2><%=image.getSrc()%></h2>

这给了我:/content/region-growth/brazil/brazil-poc/pt-br/home/jcr:content/leadmachine-new/image1/file.jpg/1456255696906.jpg如果我去这个文件夹有一个名为image1的节点&gt;文件。图像就在那里,如果我尝试使用crxde下载它,我可以打开它,所以我相信我的问题与路径有关。

这是对话框XML:

<dialog jcr:primaryType="cq:Dialog"
        title="Lead Machine"
        xtype="dialog">
    <items jcr:primaryType="cq:TabPanel">
        <items jcr:primaryType="cq:WidgetCollection">
            <generalTab jcr:primaryType="cq:Panel"
                        title="Geral">
                <items jcr:primaryType="cq:WidgetCollection">
                    <campanhaID jcr:primaryType="nt:unstructured"
                                allowBlank="false"
                                fieldLabel="Campanha ID"
                                name="./jcr:campanhaid"
                                xtype="textfield" />
                    <titulo jcr:primaryType="nt:unstructured"
                            allowBlank="false"
                            fieldLabel="Título"
                            name="./jcr:titulo"
                            xtype="textfield" />
                    <corFundo jcr:primaryType="nt:unstructured"
                              allowBlank="false"
                              fieldLabel="Cor de Fundo"
                              name="./jcr:corfundo"
                              xtype="colormenu" />
                    <corBotao jcr:primaryType="nt:unstructured"
                              allowBlank="false"
                              fieldLabel="Cor do Botão"
                              name="./jcr:corbotao"
                              xtype="colormenu" />
                    <txtBotao jcr:primaryType="nt:unstructured"
                              allowBlank="false"
                              fieldLabel="Texto do Botão"
                              ame="./jcr:txtBotao"
                              xtype="textfield" />
                    <texto jcr:primaryType="nt:unstructured"
                           allowBlank="true"
                           fieldLabel="Texto"
                           name="./jcr:texto"
                           xtype="richtext" />
                    <observacao jcr:primaryType="nt:unstructured"
                                allowBlank="true"
                                fieldLabel="Observação"
                                name="./jcr:observacao"
                                xtype="richtext" />
                    <layoutForm jcr:primaryType="cq:Widget"
                                fieldDescription="LM com formato simples"
                                fieldLabel="Layout Form"
                                inputValue="true"
                                name="./layoutForm"
                                type="checkbox"
                                xtype="selection" />
                    <agendamento jcr:primaryType="cq:Widget"
                                 fieldDescription="LM com agendamento"
                                 fieldLabel="Agendamento"
                                 inputValue="true"
                                 name="./agendamento"
                                 type="checkbox"
                                 xtype="selection" />
                    <ativo jcr:primaryType="cq:Widget"
                           fieldLabel="Ativo"
                           inputValue="true"
                           name="./ativo"
                           type="checkbox"
                           xtype="selection" />
                </items>
            </generalTab>
            <tab1 jcr:primaryType="cq:Panel" title="Image Properties">
                <image1ResType jcr:primaryType="cq:Widget" ignoreData="{Boolean}true" name="./image1/sling:resourceType" value="foundation/components/image" xtype="hidden"/>
                <image2ResType jcr:primaryType="cq:Widget" ignoreData="{Boolean}true" name="./image2/sling:resourceType" value="foundation/components/image" xtype="hidden"/>
            </tab1>
            <tab2 jcr:primaryType="cq:Widget"
                  cropParameter="./imageCrop"
                  fileNameParameter="./fileName"
                  fileReferenceParameter="./fileReference"
                  mapParameter="./imageMap"
                  name="./file"
                  requestSuffix="/img.jpg"
                  rotateParameter="./imageRotate"
                  title="Image 1"
                  xtype="html5smartimage" />
            <tab3 jcr:primaryType="cq:Widget"
                  cropParameter="./mdImageCrop"
                  fileNameParameter="./mdFileName"
                  fileReferenceParameter="./mdFileReference"
                  mapParameter="./mdImageMap"
                  name="./mdFile"
                  requestSuffix="/mdImage.img.jpg"
                  rotateParameter="./mdImageRotate"
                  title="Image 2"
                  xtype="html5smartimage" />
        </items>
    </items>
</dialog>

1 个答案:

答案 0 :(得分:2)

Node childNode = currentNode.getNode("file");
if (childNode != null) {
    if (childNode.hasProperty("fileReferenceParameter")) {
        return childNode.getProperty("fileReferenceParameter").getString();
    }
}

为什么在imageResType中使用隐藏的tab1

您也可以使用以下图像对象:

<% 
     Image image = new Image(resource, "file"); 
%>    

<img src='<%=image.getSrc()'/>