当我双击数据表行并在模态对话框中显示它时,我只是想获取一些对象。我应该遗漏一些东西,因为它只能正确地做到一次。设置bean对象后,无论我做什么,它都会保留值。
以下是代码:
* XHTML:
<!-- Modal dialog -->
<p:dialog widgetVar="addNotDlg" id="idAddNotDlb" minHeight="40" modal="true"
resizable="false" draggable="false" style="heigth:500">
<p:panel id="panel">
<p:messages id="messages" />
<h:panelGrid columns="3" cellpadding="5">
<p:outputLabel for="resultado" value="Resultado:" />
<p:inputText id="resultado"
value="#{acuerdoBean.notificacion.resultado}" label="resultado" />
<p:message for="resultado" />
<p:outputLabel for="motivo" value="Motivo:" />
<p:inputText id="motivo"
value="#{acuerdoBean.notificacion.motivo}" label="motivo" />
<p:message for="motivo" />
</h:panelGrid>
<p:commandButton value="Guardar" id="addNewNotButton" actionListener="#{acuerdoBean.addNotificacion()}"
update=":formNotificacion:notificacionesTable"
oncomplete="handleLoginRequest(xhr, status, args)" />
<p:commandButton value="Cerrar" id="closeNewNotButton" onclick="PF('addNotDlg').hide();" />
<h:outputText value="" />
</p:panel>
</p:dialog>
* Bean.java代码:
public void generateNewNotificacion() {
this.tiposNotificaciones = pservice.getTiposNotificaciones();
this.tipoNotificacion = new Rstiponotifica();
this.direccionPorDefecto = (Rsdireccion) pservice.findDireccionPorDefecto();
this.notificacion = new Rsnotificacion();
this.notificacion.setRsacuerdo(acuerdo);
this.notificacion.setRstiponotifica(tipoNotificacion);
this.notificacion.setRsdireccion(direccionPorDefecto);
}
上述函数在其他.xhtml文件事件中执行。我希望我的“this.notificacion”对象应该在模态中显示为新的,但它不会。 “this.notification”对象先前已设置,并保留在内存中。
<p:commandLink onclick="PF('addNotDlg').show();" actionListener="#{acuerdoBean.generateNewNotificacion()}">
<h:outputText value="Añadir nueva notificacion" />
</p:commandLink>
提前致谢。
答案 0 :(得分:1)
单击命令链接时在对话框内更新面板应解决您的问题。 commandLink具有您可以使用的更新属性。
您可以在primefaces网站上看到一个有效的例子:http://www.primefaces.org/showcase/ui/data/schedule.xhtml