StreamedContent表示imagepath

时间:2014-05-23 19:20:56

标签: java-ee primefaces jsf-2.2

在PrimeFaces展示(PF5)中,以下示例

<p:imageCompare leftImage="/resources/demo/images/compare/lara-ps3.png"
    rightImage="/resources/demo/images/compare/lara-ps4.png"
    width="450" height="435"/>

使用静态资源作为图像。我希望通过StreamedContent更具活力。但是这些属性只接受字符串作为属性值。

问题:我如何&#34;转换&#34; StreamedContent到相应的String。

我知道,我可以将图像写入文件,但这似乎不是很性感。

1 个答案:

答案 0 :(得分:0)

您是否已尝试使用表达式语言?

xhtml页面:

<p:imageCompare leftImage="#{imageBean.leftImage}"
    rightImage="#{imageBean.rightImage}"
    width="450" height="435"/>

托管bean:

@ManagedBean
public class ImageBean {
    private StreamedContent leftImage;
    private StreamedContent rightImage;

    public ImageBean() {
        InputStream stream1 = this.getClass().getResourceAsStream("lara-ps3.jpg");  //or something else
        leftImage = new DefaultStreamedContent(stream1, "image/jpeg");

        InputStream stream2 = this.getClass().getResourceAsStream("lara-ps4.jpg");  //or something else
        rightImage = new DefaultStreamedContent(stream2, "image/jpeg");
    }

    public StreamedContent getLeftImage() {
        return this.leftImage;
    }

    public StreamedContent getRightImage() {
        return this.rightImage;
    }
}