1

私は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;
}
4

2 に答える 2

0

イメージの実際のパスを提供するのではなく、リソース (イメージ ノード) のパスを取得してイメージ タグの src 属性に提供しようとしています。

以下に示すように getImg() メソッドを変更することで、これにアプローチする 1 つの方法

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

または、 imgタグを使用する代わりに、リソース オブジェクトを渡すことで、 com.day.cq.wcm.foundation.Image クラスを使用して画像を描画できます。

于 2013-10-03T14:37:27.480 に答える