繁体   English   中英

影像不必要地显示在 <p:graphicImage> 事件虽然没有提供资源目录中的图像名称

[英]Image is unnecessarily displayed on <p:graphicImage> event though the image name from the resources directory is not given

我已经将一些图像存储在webroot\\resources\\fileUpload\\product_image\\thumb目录下,以便可以按以下方式将这些图像显示在<p:graphicImage>

<p:graphicImage library="fileUpload" 
                name="product_image/thumb/13850470212653732655006325945389_4921.jpg" 
                alt="Whatever the product name is."/>

如果未提供图像名称即13850470212653732655006325945389_4921.jpg ,则不应显示该图像,但会显示来自给定URL的图像。

<p:graphicImage library="fileUpload" 
                name="product_image/thumb/" 
                alt="Whatever the product name is."/>

Web浏览器上的图像URL如下所示。

/webroot/javax.faces.resource/product_image/thumb/.jsf?ln=fileUpload&v=13850470212653732655006325945389_4921

它如何拾取图像?

如果资源文件名与\\d+(_\\d+)匹配,则将其识别为版本化资源。 这是一个很少使用的功能( 资源库版本控制更为常见)。 具体而言,您可以具有以下结构:

WebContent
 |-- resources
 |    `-- js
 |         `-- script.js
 |              |-- 1_0.js
 |              |-- 1_1.js
 |              `-- 1_2.js
 :

(是的, script.js是这里的文件夹名称)

并在声明时如下所示:

<h:outputScript name="js/script.js" />

然后自动将最新的1_2.js用作以下生成的HTML输出,并提供/context的上下文路径和*.xhtml的JSF映射:

<script type="text/javascript" src="/context/javax.faces.resource/scripts/script.js.xhtml?v=1_2"></script>

所有这些都在JSF规范的 2.6.1.3章中指定。

但是,您可能会遇到一些不幸的情况,即使用无扩展名的文件夹使用带斜杠的后缀作为资源名称,这应该是IMO失败的,但Mojarra显然也接受它。

如果要避免这种现象,则需要使用其他模式作为文件名。 例如,使用-而不是_或使用_作为前缀或后缀,或至少引入一个字母字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM