Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 如何在<;p:graphicImage>;面对面?_Jsf_Primefaces_Jsf 2.2_Graphicimage - Fatal编程技术网

Jsf 如何在<;p:graphicImage>;面对面?

Jsf 如何在<;p:graphicImage>;面对面?,jsf,primefaces,jsf-2.2,graphicimage,Jsf,Primefaces,Jsf 2.2,Graphicimage,我正在上显示图像,这些图像存储在webroot\resources\fileUpload\product\u image\thumb目录下,如下所示 <p:graphicImage library="fileUpload" name="#{not empty row.prodImage?'product_image/thumb/':'&nbsp;'}#{row.prodImage}" alt="#{row.prod

我正在
上显示图像,这些图像存储在
webroot\resources\fileUpload\product\u image\thumb
目录下,如下所示

<p:graphicImage library="fileUpload" 
                name="#{not empty row.prodImage?'product_image/thumb/':'&nbsp;'}#{row.prodImage}" 
                alt="#{row.prodName}"/>

指存储在
java.util.List
中的JPA实体对象,该对象在迭代
时检索


当图像名称为空时,
名称
属性计算为
name=”“
。在这种情况下,仅将页面留空而不出现任何错误是行不通的

如果删除条件表达式中的
,则会导致抛出
java.lang.StringIndexOutOfBoundsException

那么,如果要显示的图像不可用,如何在
上显示备用文本呢

如果删除了条件表达式中的
,则会导致抛出
java.lang.StringIndexOutOfBoundsException

事实上,我复制了它。从技术上讲,这是PrimeFaces的GraphicImageRenderer中的一个bug。在第70行,它应该执行
if(name!=null&&!name.isEmpty())
而不是单独执行
name!=在尝试将其作为资源获取之前,null

我不确定他们是否值得修复它,因为指定一个空的
名称实际上没有意义,而且通过有条件地渲染两个图像(一个没有名称,另一个有名称),解决方法相对简单:

<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}" />