#jsf-2 #richfaces
#jsf-2 #richfaces
Вопрос:
У меня есть базовый класс, который является обычным классом Java. Его расширяют три подкласса, которые являются @ViewScoped
компонентами. Там facelet
используется динамическая переменная. У меня есть три xhtml
страницы, которые используют этот интерфейс с тремя компонентами, а именно. bean1, bean2 and bean3
которые динамически включаются в rich:tab
компонент на главной странице. Пока все хорошо. Но на каждой странице есть несколько всплывающих окон, которые должны ссылаться на текущий компонент. И поскольку эти всплывающие окна нуждаются в form
тегах внутри них, я включил их вне тегов формы главной страницы, чтобы избежать вложенных form
тегов. Теперь я хочу, чтобы всплывающее окно ссылалось на текущий компонент (bean1, bean2 или bean3, в зависимости от того, откуда вызывается всплывающее окно), о котором идет речь. Как мне этого добиться?
Комментарии:
1. ваша версия richfaces и версия jsf с фрагментом кода были бы полезны 🙂
Ответ №1:
Попробуйте что-то вроде этого:
-
Добавьте новый компонент (
popupBean
), который будет содержать ссылку на текущий компонент во всплывающем окне. -
Добавьте действие, которое установит необходимый компонент в качестве свойства
popupBean
. Пример:<h:commandLink> <a4j:ajax render="myPopup"/> <f:setPropertyActionListener target="#{popupBean.currentBean}" value="#{bean1}"/> <h:outputText value="Click ME!"/> </h:commandLink>
-
Используйте
show
атрибутrich:popupPanel
для отображения всплывающего окна:<rich:popupPanel id="myPopup" modal="true" width="600" moveable="true" show="#{not empty popupBean.currentBean}" onmaskclick="#{rich:component('myPopup')}.hide();" autosized="true"> <f:facet name="header"><h:outputText value="Cool popup!"/></f:facet> <h:panelGrid style="margin: 0"> <h:panelGroup style="max-height: 400px;overflow-y: auto;" layout="block"> <h:outputText value="#{popupBean.currentBean.myBeanProperty}"/> </h:panelGroup> <h:button value="Close" onclick="#{rich:component('myPopup')}.hide();return false;"/> </h:panelGrid> </rich:popupPanel>