Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 为什么p:dialog中的p:commandButton不启动actionListener?_Jsf_Jsf 2_Primefaces - Fatal编程技术网

Jsf 为什么p:dialog中的p:commandButton不启动actionListener?

Jsf 为什么p:dialog中的p:commandButton不启动actionListener?,jsf,jsf-2,primefaces,Jsf,Jsf 2,Primefaces,表单中还有一些其他控件。单击链接时,侦听器未被激发。有什么问题吗?请帮忙 您需要将其声明为EL方法表达式,而不是普通字符串 <h:form prependId="false"> <p:dialog modal="true"> <p:commandLink ajax="true" value="ok" actionListener="Bean.listenerMethod"/> </p:dialog> </h:form> 可以肯

表单中还有一些其他控件。单击链接时,侦听器未被激发。有什么问题吗?请帮忙

您需要将其声明为EL方法表达式,而不是普通字符串

<h:form prependId="false">

<p:dialog modal="true">

<p:commandLink ajax="true" value="ok" actionListener="Bean.listenerMethod"/>

</p:dialog>

</h:form>
可以肯定的是,
{Bean}
必须是一个有效的托管Bean,托管Bean名称为
“Bean”
,该名称又包含以下方法

actionListener="#{Bean.listenerMethod}"
其中来自
javax.faces
包,而不是
java.awt

如果这仍然不起作用,那么它是由其他原因引起的。例如,表单是嵌套的,
呈现的
属性被评估为
false
,等等。有关概述,请参阅。

尝试

public void listenerMethod(ActionEvent event) {
    // ...
}

__________
__________
_________
_________
谢谢

您应该使用

例如:

<h:form id="mainform">
    __________
    __________
    <p:dialog id="test" widgetVar="Testing">
       <h:form>
          <h:panelGrid columns="1">
             _________
             _________
          </h:panelGrid>
          <p:commandLink ajax="true" update="mainform" process="@all" value="ok" actionListener="#{Bean.listenerMethod}" oncomplete="Testing.hide()"/>
      </h:form>
    </p:dialog>
</h:form>


这是准确的代码吗?有一个非常明显的错误,但我不想为“明显队长”踢球。对不起,我用commandLink代替commandButton。这是错误BalusC吗?不,您的
actionListener
不是方法表达式。这是一个简单的字符串。我以前用过这个符号(Bean.listenerMethod)来调用侦听器。它很有效。你的意思是正确的符号是“Bean.listenerMethod()”?谢谢你,斯科尔茨先生>我的大脑脱水了:)我试过所有其他的东西。我试过了,就像你说的那样,把
{Bean.listenerMethod}
但现在它也不会触发侦听器:(BalusC关于这个问题,我可以再问一个更详细的问题吗?你能帮忙吗?PrimeFaces已经有一段时间了,他们的文档不再免费了,但是表单不应该出现在对话框中吗?还要确保你没有相互嵌套表单。我已经检查了PrimeFaces 2.1文档及其showcase。在p:dialog或p:confirmDialog中没有提到不使用表单。无论如何,感谢您的提示:)
<h:commandLink id="elimina"
   action="#{listaBonificiModel.eliminaSelezionato()}"
   update="@(form)" oncomplete="PF('bonificoDialog').hide()"
   value ="Elimina" />