Я пытаюсь понять, как правильно использовать компонент rich: popupPanel . Есть (по крайней мере, что я не смог найти) несколько постов о том, как использовать rich: popupPanel и как передавать значения из него.
Что еще хуже, панель шва добавляет (при проверке html) жестко закодированный "_content" к имени его компонента (к сгенерированному div). Я пытался использовать тег aj4: region для частичной визуализации полной формы. Но это не сработало, потому что ничего не написано в управляемом бобе. Так что теперь у меня остался один вариант, когда панель имеет свою форму, вне основной на странице.
Я вижу, что происходит оценка значений формы (всплывающих окон), но не выполняется функция компонента, сохраняющая значения (я вижу запрос POST командной кнопки). Единственная причина, о которой я могу подумать в данный момент, заключается в том, что всплывающая панель использует другой компонент для сохранения значений, которые основная форма на странице (обе они имеют сессионную область).
Я думаю о том, чтобы опустить всплывающую панель все вместе, так как она выглядит так трудно, чтобы сделать эту работу. Может быть, это хорошо известный секрет, поскольку в нем так мало сообщений об этом. Он ведет себя так же, если использовать componentController или только a4j: commanLink .
Как можно передать значения из rich: popupPanel и вызвать функцию вспомогательного компонента для сохранения значений всплывающей формы?
Ценю, если кто-то может пролить свет на это, привет Крис.
Я использую Richfaces 4.0-final на Glassfish 3.1
<h:form id="main_form">
<!-- Command for popup -->
<a4j:commandLink actionListener="#{userController.prepareCreateSysRequest}" oncomplete="#{rich:component('popup_sys_user_req_form:popup_sys_user_req')}.show(); return false;"
execute="@this" value="Request New Sector/Category" />
...
<a4j:commandButton action="#{projectController.Create}" ...>
</h:form>
<h:form id="popup_sys_user_req_form">
<rich:popupPanel id="popup_sys_user_req" modal="true" autosized="true" resizeable="false">
<f:facet name="header">
<h:outputText value="New Project Request" />
</f:facet>
<f:facet name="controls">
<h:outputLink value="#"
onclick="#{rich:component('popup_sys_user_req')}.hide(); return false;">
X
</h:outputLink>
</f:facet>
<h:panelGrid columns="2">
<h:outputLabel value="Request New:" />
<h:selectOneMenu id="sys_req_type" value="#{userController.selectedSysRequestType}" required="true" requiredMessage="Request Type is required" title="Request Type">
<f:selectItems value="#{userController.getSysRequestTypeItems()}">
</f:selectItems>
</h:selectOneMenu>
<h:outputLabel value="Description:" />
<h:inputTextarea id="user_req_desc" value="#{userController.selectedSysUserRequest.description}" required="true" requiredMessage="Decription is missing" />
</h:panelGrid>
<a4j:commandButton action="#{userController.CreateSysUserRequest}" onclick="#{rich:component('popup_sys_user_req')}.hide(); return false;" execute="@form" render="popup_sys_user_req_form" value="Send Request" />
</rich:popupPanel>
</h:form>