создание всплывающего окна в JSF с использованием собственного компоновки - PullRequest
0 голосов
/ 02 декабря 2011

У меня есть пользовательский компонент, который мне нужно использовать, если я создаю всплывающее окно на странице JSF.Кажется, что он использует технику DHTML с CSS hide и show и создает наложение на текущей странице, а не правильное окно.

В моем случае это отображение изображения, обслуживаемого сервлетом.

Я попробовал несколько вещей, и вот результаты: 1) если я использую <h:commandButton action="bean.displayImage" onclick="mypopup.show()">, всплывающее окно и изображение отображаются, а затем исчезают, потому что commandButton обновляет страницу.

2), если я изменяютип commandButton для «button», затем bean.displayImage в поле действия никогда не вызывается, и сервлет не должен обслуживать изображение

3) Я также попытался поместить bean.displayImage в actionListenerполе и изменив метод, добавив ActionEvent e в качестве параметра, чтобы предотвратить обновление страницы, но затем он будет вести себя так же, как 2)

У меня заканчиваются идеи, может кто-нибудь помочь?

Спасибо заранее, Майкл

1 Ответ

0 голосов
/ 02 декабря 2011

Функциональные требования не совсем ясны, но вы можете использовать <f:ajax>, чтобы вместо этого сделать запрос ajax и визуализировать определенные части страницы.

Что-то вроде:

<h:commandButton value="Show popup" onclick="mypopup.show()">
    <f:ajax listener="#{bean.displayImage}" render="image" />
</h:commandButton>
<h:panelGroup id="image">
    <h:graphicImage value="imageURL" rendered="#{bean.renderImage}" />
</h:panelGroup>
...