Java JSF-<;p:dataTable>;Ajaxmethod的问题
我有一个Java JSF-<;p:dataTable>;Ajaxmethod的问题,java,ajax,jsf-2,primefaces,datatable,Java,Ajax,Jsf 2,Primefaces,Datatable,我有一个,在一行中,我有一个日期字段,每当用户系统地或手动更改日期时,我需要向用户显示对话。将调用Ajax方法来更新来自备份bean的消息 下面是我正在使用的特定行的代码 <p:calendar value="#{dets.exceptionDueDate}" pattern="MM/dd/yyyy" size="10" navigator="true" rendered="#{
,在一行中,我有一个日期字段,每当用户系统地或手动更改日期时,我需要向用户显示对话。将调用Ajax方法来更新来自备份bean的消息
下面是我正在使用的特定行的代码
<p:calendar value="#{dets.exceptionDueDate}" pattern="MM/dd/yyyy"
size="10" navigator="true"
rendered="#{systemDetailsBean.editCmdActionflg==true and (dets.firstColumn!='1' or dets.secondColumn!='1')}">
<f:convertDateTime pattern="MM/dd/yyyy" />
<p:ajax event="dateSelect"
listener="#{systemDetailsBean.showPopup}"
process="@this :SystemDetailsinfoForm:line :commentsform:commentsdt"
partialSubmit="true" />
<p:ajax event="change" listener="#{systemDetailsBean.showPopup}"
process="@this :SystemDetailsinfoForm:line :commentsform:commentsdt"
partialSubmit="true" />
<f:attribute name="index" value="_#{index}" />
<f:attribute name="componentId" value="exe" />
</p:calendar>
< >我的问题是考虑<代码> <代码>有<代码> 12行< /C> >当我在特定行中更改日期列时,Ajax方法被调用为<代码> 12次<代码>。因此,我无法在后备bean中的Ajax方法中处理一些消息。
当我在一个特定的行中选择一个日期列时,我怎样才能将Ajax方法的调用限制为一次呢。 但是我不知道如何限制XHTML中的方法调用。
任何建议都会对解决此问题非常有帮助。我通过将“进程”属性替换为“更新”属性并添加“执行=@this”属性来解决此问题
这是我的更新代码
public void showPopup(ActionEvent event) {
String compId = (String) event.getComponent().getAttributes()
.get("componentId");
int index = Integer.parseInt(((String) event.getComponent()
.getAttributes().get("index")).replace("_", ""));
//Blah blah...
}
<p:ajax event="dateSelect" execute="@this"
listener="#{systemDetailsBean.showPopup}"
update="@this :SystemDetailsinfoForm:line :commentsform:commentsdt"
partialSubmit="true" />
<p:ajax event="change" listener="#{systemDetailsBean.showPopup}" execute="@this"
update="@this :SystemDetailsinfoForm:line :commentsform:commentsdt"
partialSubmit="true" />