У меня есть вопрос об обновлении переменной внутри компонента dataTable, который был отправлен компоненту диалога.
Я хочу иметь диалоговое окно с параметрами.Есть информация о пользователе (редактирование пользовательских данных).Класс ManageUsers
имеет свойство UserDAO selectedUser
, класс UserDAO
содержит POJO пользователя (логин, адрес электронной почты и т. Д.).
ManageUsers.updateUser
сохраняет данные в базе данных.
Как обновить selectedUser через inputText?Я не могу использовать компонент p:inplace
, потому что у меня есть проблема с h:forms
и facelets
(переход на стадию производства не решает эту проблему).
Glassfish: 3.1
Primefaces: 2.2
JSF: 2.1 (теперь MyFaces 2.1.3)
<h:form prependId="false">
<p:growl id="growl"/>
<!-- Data table with all users-->
<p:dataTable id="userTable" var="u" value="#{manageUsers.users}">
<p:column headerText="login" style="width:150px" filterBy="#{u.user.login}" filterMatchMode="contains">
<h:outputText value="#{u.user.login}" />
</p:column>
<p:column headerText="email" style="width:150px" filterBy="#{u.user.email}" filterMatchMode="contains">
<h:outputText value="#{u.user.email}" />
</p:column>
<p:column headerText="apikey" style="width:150px" filterBy="#{u.user.apikey}" filterMatchMode="startsWith">
<h:outputText value="#{u.user.apikey}" />
</p:column>
<p:column headerText="Options" >
<p:commandButton update="display" oncomplete="userDialog.show()"
image="ui-icon ui-icon-search">
<f:setPropertyActionListener value="#{u}" target="#{manageUsers.selectedUser}" />
</p:commandButton>
</p:column>
</p:dataTable>
<!-- Dialog box with options-->
<p:dialog appendToBody="true" header="User Detail" widgetVar="userDialog" resizable="false"
width="500" showEffect="explode" hideEffect="explode" onCloseUpdate="growl,userTable">
<h:panelGrid id="display" columns="2" cellpadding="4">
<h:outputText value="Login" />
<p:inputText required="true" value="#{manageUsers.selectedUser.user.login}" />
<h:outputText value="Email" />
<p:inputText required="true" value="#{manageUsers.selectedUser.user.email}" />
<p:commandButton value="save and exit" action="#{manageUsers.updateUser}" update="growl,userTable" onclick="userDialog.hide()" />
</h:panelGrid>
</p:dialog>
</h:form>