首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >p:ajax不更新p:inputText

p:ajax不更新p:inputText
EN

Stack Overflow用户
提问于 2014-11-21 05:20:53
回答 1查看 2.8K关注 0票数 0

我无法根据使用<p:inputText>在另一个<p:inputText>中输入的值更新<p:ajax>。我在PrimeFaces 5中使用JSF2。第二个<p:inputText>没有更新,正在调用与<p:ajax>关联的侦听器,我在监听器中获得正确的值,但它没有在视图上更新。

视图代码是:

代码语言:javascript
运行
复制
<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的侦听器是:

代码语言:javascript
运行
复制
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());
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-21 09:29:45

就像在注释中提到的Jaqen一样,注释使用h:form in对话框。

如果要从ManagedBean更新组件,可以使用org.primefaces.RequestContextupdate方法。

代码语言:javascript
运行
复制
RequestContext.getCurrentInstance().update("COMPONENT_ID_TO_UPDATE")

如果您觉得这个方法太有凝聚力,您可以只从Facelet进行更新,请记住不要将p:dialog放在h:from中,而要在p:dialog中使用h:form

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27054618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档