Have you tried to remove the brackets on the listener call?
before:
myListener="#{fravaersoplysningerController.testListener()}"
after:
myListener="#{fravaersoplysningerController.testListener}"
Also, wondering that ´f:ajax´ brings ´oncomplete´ as an attribute, would have expected something like
<f:ajax
onevent="function(data){if (data=="complete) { #{cc.attrs.noteDialog}.show();}"
/>
or like @BalusC says, an primefaces ajax instead...
Edit: Just hacked your example in the IDE, downsized a bit:
xhtml:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:io="http://java.sun.com/jsf/composite/inout"
...
/>
...
<h:body>
<h:dataTable var="item" value="#{scPaymentLevelValues}">
<h:column>
<io:testSomething
text="myText"
renderAsLink="myRenderAsLink"
year="2012"
month="12"
fravaersoplysningCode="womething"
noteDialog="yeah"
myListener="#{testBean.testListener}" />
</h:column>
</h:dataTable>
</h:body>
</html>
component:
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:cc="http://java.sun.com/jsf/composite">
<cc:interface>
<cc:attribute name="text" required="true" />
<cc:attribute name="renderAsLink" required="true" />
<cc:attribute name="year" required="true" />
<cc:attribute name="month" required="true" />
<cc:attribute name="fravaersoplysningCode" required="true" />
<cc:attribute name="noteDialog" required="true" />
<cc:attribute name="myListener"
method-signature="void listener()" required="true" />
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<h:commandButton
value="hhii"
rendered="true">
<f:ajax
oncomplete="alert('hi');"
listener="#{cc.attrs.myListener}" />
</h:commandButton>
</cc:implementation>
</ui:composition>
Bean:
import java.io.Serializable;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
@Name("testBean")
@Scope(ScopeType.CONVERSATION)
public class TestBean implements Serializable {
public void testListener(){
System.out.println("testListener : {}"+ String.format("Im working"));
}
}
Am getting the desired output testListener : {}Im working
. Using Mojarra 2.1.7, Seam 2.3.1.CR1. Can you maybe try downgrading to h:dataTables and h:commandButton, check if it's working there... and if so upgrading to primefaces until it stops working - and then decide how to go on?.
Hope, that helps... if so, please vote. :-)