Pessoal, depois de muita briga (hehe) consegui fazer o netbeans funcionar com o ajax4jsf.
Busquei várias soluções na net, cheguei até a descompactar a lib do ajax4jsf para retirar o faces-config.xml, como algumas pessoas indicaram.
O que deu certo pra mim foi:
Importe os seguintes jar’s:
—ajax4jsf-1.1.0.jar
—oscache-2.3.2.jar
—commons-beanutils.jar
—commons-collections-3.2.jar
—commons-digester-1.8.jar
Com os jar’s commons o Visual Web Pack vai parar de dar erro quando vc começar a usar o a4j.
Vc terá de adicionar o seguinte código no seu web.xml:
<filter>
<filter-name>ajax4jsf</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>ajax4jsf</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
Componentes
No teste que fiz, não deu certo usar os componentes da aba Básico, ui:textField, tive que usar os componentes da aba Padrão, <h:inputText>.
Exemplo bem simples:
<?xml version="1.0" encoding="UTF-8"?>
<jsp:root version="1.2" xmlns:a4j="https://ajax4jsf.dev.java.net/ajax" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html"
xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui">
<jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/>
<f:view>
<ui:page binding="#{Page1.page1}" id="page1">
<ui:html binding="#{Page1.html1}" id="html1">
<ui:head binding="#{Page1.head1}" id="head1">
<ui:link binding="#{Page1.link1}" id="link1" url="/resources/stylesheet.css"/>
</ui:head>
<ui:body binding="#{Page1.body1}" id="body1" style="-rave-layout: grid">
<ui:form binding="#{Page1.form1}" id="form1">
<h:inputText binding="#{Page1.textField1}" id="textField1" style="left: 420px; top: 48px; position: absolute" value="#{Page1.texto}">
<a4j:support event="onkeyup" reRender="outputText1"/>
</h:inputText>
<h:outputText binding="#{Page1.outputText1}" id="outputText1" style="position: absolute; left: 468px; top: 96px" value="#{Page1.texto}"/>
</ui:form>
</ui:body>
</ui:html>
</ui:page>
</f:view>
</jsp:root>
No Page1.java vc tem que inserir:
private String texto;
public String getTexto() {
return texto;
}
public void setTexto(String texto) {
this.texto = texto;
}
Outra coisa: para que o netbeans comece a auto-completar as tags a4j, vc terá que fechar e depois abrir o netbeans. Tentei compilar, executar, limpar e construir o projeto, mas só deu certo depois que fechei e abri o netbeans, hehe, vai entender.
Bom é isso ai.
Se alguém tiver alguma dúvida e eu puder ajudar, é só postar ai.
Abraços.
Obs.: as bibliotecas commons vc pode encontrar em: http://jakarta.apache.org/commons/components.html