
[英]How to show the server path image to PrimeFaces p:graphicImage?
[英]How to display alternate text on <p:graphicImage> in PrimeFaces?
我在<p:graphicImage>
上显示图像,这些图像存储在webroot\\resources\\fileUpload\\product_image\\thumb
目录下,如下所示。
<p:graphicImage library="fileUpload"
name="#{not empty row.prodImage?'product_image/thumb/':' '}#{row.prodImage}"
alt="#{row.prodName}"/>
row
指的是存储在java.util.List<Entity>
的JPA实体对象,该对象在迭代<p:dataTable>
被检索。
当图像名称为空时, <p:graphicImage>
的name
属性将被计算为name=" "
。 在这种情况下,它只是将页面留空而没有任何错误。
如果
然后,在条件表达式中删除它会导致抛出java.lang.StringIndexOutOfBoundsException
。
那么,如果要显示的图像不可用,如何在<p:graphicImage>
上显示替代文字?
如果
然后,在条件表达式中删除它会导致抛出java.lang.StringIndexOutOfBoundsException
的确,转载它。 这在技术上是PrimeFaces的GraphicImageRenderer
一个错误。 在第70行,它应该在尝试将其作为资源之前完成if(name != null && !name.isEmpty())
而不是单独的name != null
。
我不确定它们是否值得修复它,因为它实际上没有意义指定一个空name
并且通过有条件地渲染两个图像(一个没有名称,另一个没有名称)来解决方法相对容易:
<p:graphicImage alt="#{row.prodName}" rendered="#{empty row.prodImage}" />
<p:graphicImage library="fileUpload" name="product_image/thumb/#{row.prodImage}" alt="#{row.prodName}" rendered="#{not empty row.prodImage}" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.