Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSF-<;p:dataTable>;Ajaxmethod的问题_Java_Ajax_Jsf 2_Primefaces_Datatable - Fatal编程技术网

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