java - 使用ajax更新另一个字段

标签 java events primefaces

查看:

<h:form id="ExamrequisitionsCreateForm">

     <p:selectOneMenu id="examId" value="#{examrequisitionsController.selected.examId}" required="true" requiredMessage="#{bundle.EditExamrequisitionsRequiredMessage_examId}">
          <f:selectItems value="#{examsController.itemsAvailableSelectOne}"
                    var="examIdItem"
                    itemValue="#{examIdItem}"/>
          <f:ajax execute="@this" listener="#{examrequisitionsController.getPriceExam(examItem.id)}" render="ExamrequisitionsCreateForm:price" />
</p:selectOneMenu>

          <p:inputText id="price" value="#{examrequisitionsController.selected.price}" title="#{bundle.CreateExamrequisitionsTitle_price}" required="true" requiredMessage="#{bundle.CreateExamrequisitionsRequiredMessage_price}">

</h:form>

Controller :

public BigDecimal getPriceExam(int id) {
    EntityManager em = Persistence.createEntityManagerFactory("SystemCardiologyReportsPU").createEntityManager();
     List<Exams> examsList = em.createNamedQuery("Exams.findById").
                 setParameter("id", id).getResultList();
     return examsList == null ? null : examsList.get(0).getPrice();
}

我正在尝试在考试中执行事件change后更新字段price。 我怎样才能做到这一点?

最佳答案

请尝试以下操作:

  1. 删除

       <f:ajax execute="@this" listener="#{examrequisitionsController.getPriceExam(examItem.id)}" render="ExamrequisitionsCreateForm:price" />
    

并添加

  <p:ajax  listener="#{examrequisitionsController.updatePrice}" update="price"/>
  • 在您的 Controller 中:

       public void updatePrice (){
            EntityManager em = Persistence.createEntityManagerFactory("SystemCardiologyReportsPU").createEntityManager();
       List<Exams> examsList = em.createNamedQuery("Exams.findById").
             setParameter("id", this.selected.examId ).getResultList();
       this.selected.price == null ? null : examsList.get(0).getPrice();
    }
    

    您的监听器只需要更新绑定(bind)到输入文本的值,并且您的 ajax 调用只需要更新它。

  • 关于java - 使用ajax更新另一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33715773/

    相关文章:

    java - 如何在 Gradle 中排除目录下的所有文件?

    java - [spark-cassandra-connector]如何在spark 2.3.1中将scala隐式支持的代码转换为java

    javascript - 使用 PrimeFaces <p :ajax>, 仅在更改字段的击键时在 inputText 中启动 Ajax

    css - 使用 Glassfish 3.1.2、JSF 2.0、PrimeFaces 和 ThemeRoller 时服务器返回不正确的文件内容

    primefaces - 重置素数中的输入字段

    java - 使用 Hibernate 捕获 PSQLException

    java - 如何在运行 grizzly 的 java se 上启用 Web 服务(jaxrs/jersey)中的 CDI 注入(inject)?

    ios - 如何使用 Swift 编辑 iOS 日历应用程序中的事件日期?

    c# - 嵌套 UserControl 事件在 MVVM/WPF 场景中不适用于 EventTrigger/InvokeCommandAction

    excel - 以前活跃的细胞