2013-10-03 54 views
1

我是CQ5的新手,我遇到了以下问题。CQ5 - 如何获取页面图片

我试图显示一个列表与子页面后面的图像。我设法让列表本身工作,但图像出现问题,路径不正确。

到目前为止,我已经有了这个

<div class="img-list"> 
    <img src="${list.img}" /> 
</div> 

public class ImageList { 
private String img = ""; 
private Page listItem; 
String extension; 
Resource r; 

public ImageList(Page p) { 
    this.listItem = p; 
    this.r = listItem.getContentResource("image"); 

} 

public String getImg() { 

    if (r != null) { 
     //Image image = new Image(r); 
     img = r.getPath(); 
    } 

    return img; 
} 

public void setImg (String i) { 
    this.img = i; 
} 

} 

但是,这是行不通的。有人可以帮我吗?

在此先感谢

编辑,得到了它与下面的解决方案工作:

public String getImg() { 
    String imagePath = ""; 
    if (r != null) { 
     Image image = new Image(r); 
     imagePath = (String)listItem.getPath()+".img.png"+ image.getSuffix(); 
    } 
    return imagePath; 
} 

回答

1

如果我理解正确,您正尝试从子页面获取图像列表。

为什么不尝试创建一个对象,它映射到当前页面(实际上是一个当前页面的对象),然后使用listChildren方法,列出所有的子页面。然后你可以使用page.getContentResorce(“图像”)方法,创建一个图像对象,然后再返回与每个子页面相关的图像的路径..

事情是这样的: -

Iterator<Page> childPageIterator = Currentpage.listChildren(new PageFilter(request)); 
while(pageIterator.hasNext()) 
      { 
       Page childPage = pageIterator.next(); 
         Resource r = page.getContentResource("image"); 
         if (r != null) { 
          Image image = new Image(r); 
          String imagePath = (String)contentpage.getPath()+".img.png"+ image.getSuffix(); 
         } 
      } 

你可能需要根据您的需要量身定做,但希望这可以让您开始

+0

让孩子不是问题。问题是显示图像。我刚刚尝试了一些您的解决方案的修改版本,输出为。另外,我并不想从当前页面获取孩子。我正在使用不同页面的孩子。 –

+0

Nevermind,发了一个小的错字,我刚刚使用了String imagePath =(String)contentpage.getPath()+“。img.png”+ image.getSuffix();在我原来的解决方案,它的工作,谢谢! –

0

您正在试图获取资源(图像节点)的路径,并提供给的src属性图像标签,而不是提供图像的实际路径。

通过如下图所示

public String getImg() { 
    if (r != null) { 
     Node node = r.adaptTo(Node.class); 
     if(node.hasProperty("fileReference"){ 
      img = node.getProperty("fileReference").getString(); 
     } 
    } 
    return img; 
} 

或者你可以使用com.day.cq.wcm.foundation.Image类通过绘制图像改变GETIMG()方法接近的一种方式传递资源对象,而不是使用标签。

+0

感谢您的回复!但是当我这样做时,输出是,没有更多。我确信这些子页面上有一张图片。有任何想法吗? –

相关问题