¿Por qué puedo vincular <f: actionListener> a un método arbitrario si JSF no lo admite?
Estoy usando Glassfish 3.1.2.2 y JSF Mojarra 2.1.6.
Tengo la siguiente página de Facelets:
<h:form>
<h:commandLink value="link">
<f:actionListener binding="#{backingBean.someMethod(1)}"/>
</h:commandLink>
</h:form>
Y el siguiente respaldo-bean:
@RequestScoped
@ManagedBean
public class BackingBean {
public void someMethod(int i) {
System.out.println("It was called: " + i);
}
}
Cuando hago clic en el enlace, aparece "Información: se llamó: 1" en la consola.
La documentación parabinding
lee:
Biblioteca:http://xmlns.jcp.org/jsf/core, http://java.sun.com/jsf/core (Jsf Core)
Etiqueta: actionListener
Unión
Expresión de enlace de valor que se evalúa comoobjeto que implementa javax.faces.event.ActionListener. [énfasis mío]
Además, la respuesta aceptada aesta pregunta afirma que no es posible para unf:actionListener
llamar a un método arbitrario.
¿Por qué se llama al método bean de respaldo si esto no es compatible?