我无法根据使用<p:inputText>
在另一个<p:inputText>
中输入的值更新<p:ajax>
。我在PrimeFaces 5中使用JSF2。第二个<p:inputText>
没有更新,正在调用与<p:ajax>
关联的侦听器,我在监听器中获得正确的值,但它没有在视图上更新。
视图代码是:
<p:dialog id="newStdDlg" header="Add new Student" widgetVar="newStdDlg" modal="true">
<h:panelGrid id="newStdDlgPanel" columns="2" cellpadding="5" style="width:100%;">
<p:outputLabel value="First Name *" />
<p:inputText id="studentfname" value="#{addStudentBean.student.firstName}">
<p:ajax event="change" update="studentUsrname" listener="#{addStudentBean.firstNameChange}" />
</p:inputText>
<p:outputLabel value="Last Name *" />
<p:inputText value="#{addStudentBean.student.lastName}"/>
<p:outputLabel value="Father's Name *" />
<p:inputText value="#{addStudentBean.student.fatherName}"/>
<p:outputLabel id="uLbl" value="Username (System Generated) *" />
<p:inputText id="studentUsrname" value="#{addStudentBean.student.user.username}" />
<p:outputLabel value="This temporary password would be mailed to user: " />
<p:outputLabel id="stdpassword" value="#{addStudentBean.student.user.password}"/>
</h:panelGrid>
<p:commandButton value="Create Student"
actionListener="#{addStudentBean.addNewStudentAction}"
style="margin-left:auto;margin-right:auto;display:block;"/>
</p:dialog>
会话作用域的托管bean的侦听器是:
public void firstNameChange() {
System.out.println("In AddStudentBean().firstNameChange()..........");
System.out.println("The value of student.getFirstName: "+student.getFirstName());
System.out.println("updating system generated username as: "+student.getFirstName()+String.valueOf(new UserDAO().getUserCount()+1));
student.getUser().setUsername(student.getFirstName()+String.valueOf(new UserDAO().getUserCount()+1));
student.getUser().setPassword(KaaloUtils.getPassword());
}
发布于 2014-11-21 09:29:45
就像在注释中提到的Jaqen一样,注释使用h:form
in对话框。
如果要从ManagedBean更新组件,可以使用org.primefaces.RequestContext
的update
方法。
RequestContext.getCurrentInstance().update("COMPONENT_ID_TO_UPDATE")
如果您觉得这个方法太有凝聚力,您可以只从Facelet进行更新,请记住不要将p:dialog
放在h:from
中,而要在p:dialog
中使用h:form
。
https://stackoverflow.com/questions/27054618
复制相似问题