JSF ajax监听器中的奇怪Ajax响应

时间:2018-02-07 07:38:22

标签: html ajax jsf primefaces

在一个div中,我放置了一个带有两个输入文本和一个按钮的表单。当用户单击该按钮时,将调用createProject.register方法,并将文本字段的值保存到数据库表中。

 <h:outputText id="opt" value="#{createProject.register}"></h:outputText>
 <h:commandButton value="Add URL">
       <f:ajax execute="@form" event="click" render="@form dt" listener="#{prTable.refresh}"></f:ajax>
       </h:commandButton>

在div下面,有一个ID为dt的数据。为了刷新表格中的数据,我已将listener="#{prTable.refresh}"添加到f:ajax块。 PrTable类中的refresh方法更新了URL的arralylist。数据表显示URL列表。

问题:当我第一次单击该按钮时,表格不会刷新。但是,当我第二次单击该按钮时,数据表会刷新。该表不会在输入文本字段中显示当前值,但会显示最后一次按钮单击时保存的值。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我没有使用两个不同的Beans作为表和表单,而是使用了一个bean。在保存数据的函数结束时,我调用了更新ArrayList的函数。我还从表单中删除了outputtext和listener。这解决了我的问题。