Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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
Jsf f:setPropertyActionListener未被随机调用_Jsf_Primefaces - Fatal编程技术网

Jsf f:setPropertyActionListener未被随机调用

Jsf f:setPropertyActionListener未被随机调用,jsf,primefaces,Jsf,Primefaces,我面临着标签的奇怪行为。有时,更奇怪的是,它会随机停止工作,因此在操作开始之前不会调用setter方法(我快速翻译了意大利语的消息,只是为了告诉您发生了什么)。 这是: <p:treeTable value="#{addestramentoController.addestramenti}" id="addestramentiTree" var="addr" scrollable="true" scrollHei

我面临着
标签的奇怪行为。有时,更奇怪的是,它会随机停止工作,因此在操作开始之前不会调用setter方法(我快速翻译了意大利语的消息,只是为了告诉您发生了什么)。 这是:

<p:treeTable value="#{addestramentoController.addestramenti}"
             id="addestramentiTree"
             var="addr" scrollable="true"
             scrollHeight="200"
             emptyMessage="No training in database.">

    <f:facet name="header">
        Training List
    </f:facet>

    <p:column .... />

    <p:column style="width:20px; text-align: center">
        <p:commandLink rendered="#{(addr.dataAddestramento ne null)}"
                       oncomplete="PF('confirmDlg').show()"
                       title="Delete training"
                       styleClass="ui-icon ui-icon-closethick">

            <f:setPropertyActionListener value="#{addr}"
                                        target="{addestramentoController.item}"/>
        </p:commandLink>
    </p:column>
</p:treeTable>
EJB中的aServ,一切正常,但有时不正常<代码>设置项根本不被调用,导致EJB服务方法中出现NPE。正如您在
中所看到的,我使用了
动作
,但我也尝试了
动作监听器
。我不知道我的代码出了什么问题,但它与PrimeFaces showcase中使用的代码相同,应该可以开箱即用。我在开发测试期间从未遇到过这个问题,而且(显然)它只发生在部署环境中

以下是我的开发和部署设置:

开发:JDK 8u25_x64-NB 8.0.2-GF 4.1,PrimeFaces 5.1社区使用Mojarra 2.2.7 impl

部署:JDK 8u25_x64-Wildfly 8.0.0最终版本与Mojarra 2.2.5-jbossorg-3

也许是莫哈拉的问题

谢谢你抽出时间

编辑:好吧,忘了告诉你……支持bean是一个
视图范围的
bean。

当你点击给定的
时,
会出现吗(我想它应该根据
oncomplete=“PF('confirmDlg')。show()“
)?
过程
属性默认为
@form
。因此,症状可能是,当单击整个表单时,它有时可能会不必要地处理/执行整个表单,从而导致一些意外行为。请尝试将该
进程
属性设置为
@this
,例如
?此外,您忘记了
这里的
目标=“{addestramentoController.item}”
。它应该类似于
target=“#{addestramentoController.item}”
。仔细看(除非是打字错误)。@Tiny the#是由于复制粘贴造成的打字错误。是的,对话框出现,动作开始,但未调用侦听器(随机调用或仅在第一次调用后调用?不知道)。我将尝试放置
process=“@this”
properties并让您知道。非常感谢。
<!-- Confirm Dialog -->
<p:confirmDialog id="confirm"
                 widgetVar="confirmDlg"
                 message="Delete training?"
                 header="Confirm"
                 severity="alert"
                 closeOnEscape="true">

    <p:commandButton value="Yes"
                     action="#{addestramentoController.doDelete}"
                     update="addestramentiTree nuovoAddestramento"
                     oncomplete="PF('confirmDlg').hide();"
                     icon="ui-icon-check"/>

    <p:commandButton value="No" type="button"
                     onclick="PF('confirmDlg').hide();"
                     icon="ui-icon-close"/>
</p:confirmDialog>
<!-- ////////////// -->
public void setItem(VolAddestramento item) {
    // Really this should NEVER happen!
    if (item == null) {
        setDialogMessage(new DialogMessage("Error", "Error Message"));
    }
    this.item = item;
}

public void doDelete() {
    // Delete selected training
    aServ.deleteAddestramento(item);

    // Update table data
    fillAddestramenti();
}