gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 04:11:50 24 4
gpt4 key购买 nike

查看:

<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/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com