Как я могу получить URLэлемент? - PullRequest
0 голосов
/ 04 августа 2010

Я пытаюсь создать галерею миниатюр на своей веб-странице, чтобы при нажатии на нее отображалось изображение в полном размере.Изображения хранятся в резервном бине и отображаются с тегом.

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

На странице я вижу, что изображения имеют адреса, такие как / block / resource / MjY0OTc3Mzc1 /, поскольку они обслуживаются Icefacesблокирующий сервлет.

Мне нужно знать, как получить ссылку на изображение, чтобы я мог поместить его в элемент.

Спасибо за любую помощь!

Ответы [ 2 ]

0 голосов
/ 05 августа 2010

Вот что я сделал, чтобы решить проблему.У меня был неупорядоченный список для моей галереи:

<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>

И я добавил этот скрипт, чтобы заменить элемент href в гиперссылке на элемент src из изображения:

 jQuery(document).ready(function() {
            jQuery("a[href^='gal']").each(function() {
                this.href = jQuery('img', this).attr("src");
            });
        });
0 голосов
/ 04 августа 2010

В этой конкретной ситуации лучшим вариантом будет JavaScript.Когда страница завершит загрузку, возьмите все элементы <img> с именем класса thumb, извлеките атрибут src, найдите родительский элемент <a> и обновите его атрибут href соответствующим образом.

Но я бы не сталне делай этого.Во-первых, это плохо для пользовательского опыта.Во-вторых, он не будет работать на отключенных клиентах JS.В-третьих, хранение необработанных изображений в бине - это переполнение памяти.Скорее сохраняйте изображения в файловой системе локального диска и связывайтесь с ними напрямую или, если они находятся вне общедоступного веб-контента или в базе данных, с помощью сервлета.Затем в вашем управляемом компоненте просто создайте коллекцию URL-адресов к изображениям (или сервлету) и позвольте сервлету передавать их последовательно соответственно.Вы можете найти здесь a basic пример такого сервлета и here более продвинутый, поддерживающий кэширование и резюме.

...