JSF 2 + f:ajax + слушатель не вызван

Образец страницы.

<tr:outputText value="#{my.name}" id="name"/>
<tr:commandButton text="Click" action="#{my.doaction}" id="test1">
<f:ajax event="click" listener="#{my.myajax}" render="name"></f:ajax>
</tr:commandButton>
</tr:form>
</ui:define>
</ui:composition>

Управляемый компонент... запрос области

@PostConstruct
public void init(){
    _name = "default";
}

public void doaction(){
    System.out.println("In doaction");
}

public void myajax(AjaxBehaviorEvent ae) throws javax.faces.event.AbortProcessingException{
    _name = "Ajax";
}

public void myajax() throws javax.faces.event.AbortProcessingException{
    _name = "Ajax";
}

Я использую кнопки Тринидад. jsf 2. мой слушатель не вызывается. ни один из myajax(AjaxBehaviorEvent ae) myajax() не вызывается. однако мой метод doaction вызывается. чего мне не хватает?

пожалуйста помоги.

примечание: мой faceconfig ниже. ли создание 2.2 и использование Тринидад 2.0 и myfaces 2.0 создает эту проблему?

<faces-config
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"
version="2.2">
<application>
<default-render-kit-id>org.apache.myfaces.trinidad.core</default-render-kit-id>
</application>
</faces-config>

1 ответ

Вы не можете смешивать действие, вызываемое в ajax, с действием, обновляющим страницу в h:commandButton.

Вы должны выбрать.

Вы пытались так?

<tr:commandButton text="Click" id="test1">
    <f:ajax event="click" listener="#{my.doaction}" render="name" />
    <f:ajax event="click" listener="#{my.myajax}" render="name" />
</tr:commandButton>
Другие вопросы по тегам