我如何获得<ice:graphicimage>元素的URL?</ice:graphicimage>

时间:2010-08-04 08:04:51

标签: jsf image servlets icefaces javabeans

我正在尝试在我的网页上创建缩略图库,以便在点击其中时显示完整尺寸的图像。图像存储在辅助bean中,并带有标记。

<li>
       <a href="????">
           <ice:graphicImage value="#{screenshot.image}" styleClass="thumb"/>
       </a>
</li>

当在页面上时,我看到图像的地址类似于/ block / resource / MjY0OTc3Mzc1 /,因为它们由Icefaces阻塞servlet提供。

我需要知道的是如何获取图像链接,以便将其放入元素中。

感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

在这种特殊情况下,最好的选择可能是JavaScript。页面加载完毕后,抓取所有<img>个元素thumb元素,提取src属性,找到父<a>并相应更新其href属性

但我不会这样做。一,这对用户体验不利。二,它不适用于JS禁用的客户端。三,将原始图像存储在bean中是内存占用。而是将图像存储在本地磁盘文件系统上并直接链接到它们,或者在公共webcontent之外或在数据库中使用servlet链接。然后在您的托管bean中只有一个URL集合到图像(或servlet),让servlet相应地顺序流。您可以找到here此类servlet的基本示例和here支持缓存和恢复的更高级的示例。

答案 1 :(得分:0)

以下是我为解决问题所做的工作。 我的画廊有这个无序列表:

<ui:repeat value="#{solutionBean.solution.screenshots}" var="screenshot">
                    <li>
                        <a href="gal" rel="prettyPhoto[gallery]" title="#{screenshot.description}">
                        <ice:graphicImage value="#{screenshot.image}" alt="#{screenshot.alternative}"
                                              height="135" width="130"/>
                        </a>
                    </li></ui:repeat>

我添加了这个脚本,用图片中的src元素替换超链接中的href elemnt:

 jQuery(document).ready(function() {
            jQuery("a[href^='gal']").each(function() {
                this.href = jQuery('img', this).attr("src");
            });
        });