Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

why p:commandButton inside p:dialog does not fire actionListener?

<h:form prependId="false">

<p:dialog modal="true">

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

</p:dialog>

</h:form>

I had some other controls too inside the form. When the link is clicked that listener was not fired. What might be the problem? please help!

like image 758
Selvin Avatar asked Oct 28 '25 04:10

Selvin


1 Answers

You need to declare it as EL method expression, not as a plain string.

actionListener="#{Bean.listenerMethod}"

To be sure, the #{Bean} must be a valid managed bean with the managed bean name "Bean" which in turn contains the following method

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

where ActionEvent is from the javax.faces package and not the java.awt one.

If that still doesn't work, then it's caused by something else. E.g. the form is nested, the rendered attribute evaluated false, etc. For an overview, see this answer.

like image 127
BalusC Avatar answered Oct 31 '25 11:10

BalusC