unpix
unpix

Reputation: 853

How to render <p:graphicImage> conditionally depending on if the resource exists

How can I render a <p:graphicImage> only if the resource URL is valid?

<p:graphicImage url="#{resource['images/image.png']}" />

Basically, I would like to render my graphicImage only if #{resource['images/image.png']} actually exists. How can I validate this? I tried to follow this JavaScript example, but I didn't succeed.

Upvotes: 4

Views: 3235

Answers (2)

emm
emm

Reputation: 19

I don't use url, rather combination of name and library...

This works for me .... Hope it helps

<h:dataTable id="image" value="#bb.getCurrentBorrowerImage(history.borrower_id)}" var="i" >
<h:column rowHeader="">
<h:graphicImage name="#{i.imageFileName}" library="borrower_images" alt="Item Image"   height="100" width="100" rendered="#{!empty i.imageFileName}"/>
</h:column>

Upvotes: -1

BalusC
BalusC

Reputation: 1108632

Check if ResourceHandler#createResource() doesn't return null.

<p:graphicImage name="images/image.png" rendered="#{not empty facesContext.application.resourceHandler.createResource('images/image.png')}"/>

Note that I replaced url="#{resource['resourceName']}" by a much simpler name="resourceName".

Upvotes: 3

Related Questions