Por que sou capaz de vincular <f: actionListener> a um método arbitrário se não é suportado pelo JSF?
Estou usando o Glassfish 3.1.2.2 e o JSF Mojarra 2.1.6.
Eu tenho a seguinte página Facelets:
<h:form>
<h:commandLink value="link">
<f:actionListener binding="#{backingBean.someMethod(1)}"/>
</h:commandLink>
</h:form>
E o seguinte feijão de apoio:
@RequestScoped
@ManagedBean
public class BackingBean {
public void someMethod(int i) {
System.out.println("It was called: " + i);
}
}
Quando clico no link, "Informações: foi chamado: 1" aparece no console.
A documentação parabinding
lê:
Biblioteca:http://xmlns.jcp.org/jsf/core, http://java.sun.com/jsf/core (Jsf Core)
Tag: actionListener
obrigatório
Expressão de ligação de valor avaliada como umobjeto que implementa javax.faces.event.ActionListener. [ênfase minha]
Além disso, a resposta aceita paraessa questão afirma que não é possível para umf:actionListener
chamar um método arbitrário.
Por que o método do backing bean é chamado se isso não é suportado?