PrimeFaces 不会使用 form 的值更新 formulA 的输入文本
PrimeFaces doesn't update inputtext of formA using values of formB
我正在尝试以 formUsuario 形式更新 ID 为 callef 的输入文本,它的 bean 是 psFacNomVialidad 也位于 MigracionController 但是,我正在尝试使用在我的输入文本中输入的值进行更新,id 为 calle这个inputtex是另一种形式(dlgFormVerif)并且有自己的bean(psNomVialidad),psFactNomVialidad[=26的值=] 与 psNomVialidad 相同,因为在关闭对话框后触发了一个方法,该方法分配值并更新 formUsuario 但由于某种原因不是工作,我错过了什么?
MigracionController.java
@ManagedBean
@ViewScoped
public class MigracionController extends AbstractBaseController {
@Getter @Setter
private String psNomVialidad;
@Getter @Setter
private String psFacNomVialidad;
...
public void verificarDatosFacturacion() {
...
psFacNomVialidad = psNomVialidad;
...
}
...
}
migracion5.xhtml
<h:form role="form" id="formUsuario" enctype="multipart/form-data">
...
<p:panel id="DomFacturacion" class="panel" visible="#{(migracionController.pbDesDatoFacturacion)}">
...
<p:inputText id="callef" class="inputTextForm" value="#{migracionController.psFacNomVialidad}"
required="true" rendered="#{(migracionController.pbDesDatoFacturacion)}"/>
...
</p:panel>
...
<h:form>
.
.
.
<p:commandButton value="VERIFY INFO" id="showDlgVerif" class="btn" rendered="true" oncomplete="PF('dlgVerif').show();"/>
.
.
.
<p:dialog id="dlgVerif" header="Verify info" class="modal" widgetVar="dlgVerif" modal="true"
resizable="false" closable="true">
<p:ajax event="close" listener="#{migracionController.verificarDatosFacturacion()}" update=":formUsuario:DomFacturacion"/>
<h:form id="dlgFormVerif" rendered="true">
<input type="hidden" name="${_csrf.parameterName}" id="${_csrf.parameterName}" value="${_csrf.token}"/>
<p:panel styleClass="panel" rendered="true">
...
<p:inputText styleClass="inputTextForm" id="calle"
value="#{migracionController.psNomVialidad}"
required="#{!migracionController.pbClteExistente}">
<p:ajax event="change" update=":formUsuario:callef"/>
</p:inputText>
...
</p:panel>
</h:form>
<p:commandButton styleClass="btnAzul" value="CLOSE" oncomplete="PF('dlgVerif').hide();"/>
</p:dialog>
我在前面更新了我的项目,但我没有处理它们,所以正如 WoAiNii 在评论中建议的那样,我为 p:ajax
标签添加了 process
属性并更改了值以实现我想要的.
这是结果
<h:form role="form" id="formUsuario" enctype="multipart/form-data">
...
<p:panel id="DomFacturacion" class="panel" visible="#{(migracionController.pbDesDatoFacturacion)}">
...
<p:inputText id="callef" class="inputTextForm" value="#{migracionController.psFacNomVialidad}"
required="true" rendered="#{(migracionController.pbDesDatoFacturacion)}"/>
...
</p:panel>
...
<h:form>
.
.
.
<p:commandButton value="VERIFY INFO" id="showDlgVerif" class="btn" rendered="true" oncomplete="PF('dlgVerif').show();"/>
.
.
.
<p:dialog id="dlgVerif" header="Verify info" class="modal" widgetVar="dlgVerif" modal="true"
resizable="false" closable="true">
<p:ajax event="close" listener="#{migracionController.verificarDatosFacturacion()}" update=":formUsuario:DomFacturacion"/>
<h:form id="dlgFormVerif" rendered="true">
<input type="hidden" name="${_csrf.parameterName}" id="${_csrf.parameterName}" value="${_csrf.token}"/>
<p:panel styleClass="panel" rendered="true">
...
<p:inputText styleClass="inputTextForm" id="calle"
value="#{migracionController.psNomVialidad}"
required="#{!migracionController.pbClteExistente}">
<!-- the changes are on the below line -->
<p:ajax event="change" process=":formUsuario:callef" update="calle"/>
</p:inputText>
...
</p:panel>
</h:form>
<p:commandButton styleClass="btnAzul" value="CLOSE" oncomplete="PF('dlgVerif').hide();"/>
</p:dialog>
我正在尝试以 formUsuario 形式更新 ID 为 callef 的输入文本,它的 bean 是 psFacNomVialidad 也位于 MigracionController 但是,我正在尝试使用在我的输入文本中输入的值进行更新,id 为 calle这个inputtex是另一种形式(dlgFormVerif)并且有自己的bean(psNomVialidad),psFactNomVialidad[=26的值=] 与 psNomVialidad 相同,因为在关闭对话框后触发了一个方法,该方法分配值并更新 formUsuario 但由于某种原因不是工作,我错过了什么?
MigracionController.java
@ManagedBean
@ViewScoped
public class MigracionController extends AbstractBaseController {
@Getter @Setter
private String psNomVialidad;
@Getter @Setter
private String psFacNomVialidad;
...
public void verificarDatosFacturacion() {
...
psFacNomVialidad = psNomVialidad;
...
}
...
}
migracion5.xhtml
<h:form role="form" id="formUsuario" enctype="multipart/form-data">
...
<p:panel id="DomFacturacion" class="panel" visible="#{(migracionController.pbDesDatoFacturacion)}">
...
<p:inputText id="callef" class="inputTextForm" value="#{migracionController.psFacNomVialidad}"
required="true" rendered="#{(migracionController.pbDesDatoFacturacion)}"/>
...
</p:panel>
...
<h:form>
.
.
.
<p:commandButton value="VERIFY INFO" id="showDlgVerif" class="btn" rendered="true" oncomplete="PF('dlgVerif').show();"/>
.
.
.
<p:dialog id="dlgVerif" header="Verify info" class="modal" widgetVar="dlgVerif" modal="true"
resizable="false" closable="true">
<p:ajax event="close" listener="#{migracionController.verificarDatosFacturacion()}" update=":formUsuario:DomFacturacion"/>
<h:form id="dlgFormVerif" rendered="true">
<input type="hidden" name="${_csrf.parameterName}" id="${_csrf.parameterName}" value="${_csrf.token}"/>
<p:panel styleClass="panel" rendered="true">
...
<p:inputText styleClass="inputTextForm" id="calle"
value="#{migracionController.psNomVialidad}"
required="#{!migracionController.pbClteExistente}">
<p:ajax event="change" update=":formUsuario:callef"/>
</p:inputText>
...
</p:panel>
</h:form>
<p:commandButton styleClass="btnAzul" value="CLOSE" oncomplete="PF('dlgVerif').hide();"/>
</p:dialog>
我在前面更新了我的项目,但我没有处理它们,所以正如 WoAiNii 在评论中建议的那样,我为 p:ajax
标签添加了 process
属性并更改了值以实现我想要的.
这是结果
<h:form role="form" id="formUsuario" enctype="multipart/form-data">
...
<p:panel id="DomFacturacion" class="panel" visible="#{(migracionController.pbDesDatoFacturacion)}">
...
<p:inputText id="callef" class="inputTextForm" value="#{migracionController.psFacNomVialidad}"
required="true" rendered="#{(migracionController.pbDesDatoFacturacion)}"/>
...
</p:panel>
...
<h:form>
.
.
.
<p:commandButton value="VERIFY INFO" id="showDlgVerif" class="btn" rendered="true" oncomplete="PF('dlgVerif').show();"/>
.
.
.
<p:dialog id="dlgVerif" header="Verify info" class="modal" widgetVar="dlgVerif" modal="true"
resizable="false" closable="true">
<p:ajax event="close" listener="#{migracionController.verificarDatosFacturacion()}" update=":formUsuario:DomFacturacion"/>
<h:form id="dlgFormVerif" rendered="true">
<input type="hidden" name="${_csrf.parameterName}" id="${_csrf.parameterName}" value="${_csrf.token}"/>
<p:panel styleClass="panel" rendered="true">
...
<p:inputText styleClass="inputTextForm" id="calle"
value="#{migracionController.psNomVialidad}"
required="#{!migracionController.pbClteExistente}">
<!-- the changes are on the below line -->
<p:ajax event="change" process=":formUsuario:callef" update="calle"/>
</p:inputText>
...
</p:panel>
</h:form>
<p:commandButton styleClass="btnAzul" value="CLOSE" oncomplete="PF('dlgVerif').hide();"/>
</p:dialog>