Pessoal, alguém pode me dar um help… tenho o seguinte formulário de pesquisa:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j">
<body>
<ui:composition template="#{managedBeanMenu.menu}">
<ui:define name="conteudo">
<f:loadBundle basename="mensagens" var="msg" />
<f:view>
<rich:panel>
<f:facet name="header">
<h:outputText value="Consulta de Fisioterapeutas" />
</f:facet>
<a4j:outputPanel>
<a4j:form ajaxSubmit="true" id="formFisioterapeuta">
<fieldset>
<legend><b>Consulta por bairro</b></legend>
<h:outputText value="Os campos com * são obrigatórios" />
<br /><br />
<h:panelGrid columns="2" cellspacing="10">
<h:outputLabel for="areaTrabalho" value="*Área de trabalho (bairro): " />
<h:inputText id="areaTrabalho" value="#{managedBeanFisioterapeuta.fisioterapeuta.areaTrabalho}" />
</h:panelGrid>
<a4j:commandButton value="consultar" action="#{managedBeanFisioterapeuta.consultar}" />
</fieldset>
<rich:messages styleClass="msgErro" />
</a4j:form>
</a4j:outputPanel>
</rich:panel>
</f:view>
</ui:define>
</ui:composition>
</body>
</html>
o método consultar do managedBeanFisioterapeuta é o seguinte:
public String consultar() throws Exception {
setMensagem(null);
setResposta(null);
FacesContext fc = FacesContext.getCurrentInstance();
if(getFisioterapeuta().getAreaTrabalho().trim().length() == 0) {
setMensagem(MessageFactory.getMessage("campoObrigatorio", new String[]{}));
}else{
setListaBairro(getFisioterapeuta().getAreaTrabalho());
setResposta("respConsultaFisioterapeutaBairro");
}
if(getMensagem() != null){
fc.addMessage("formFisioterapeuta", getMensagem());
}
return getResposta();
}
o método setListaBairro que cria um List de Fisioterapeutas é o seguinte:
public void setListaBairro(String bairro) throws Exception {
this.listaBairro.clear();
for (Object obj : new FisioterapeutaDao().listaBairro(bairro)) {
listaBairro.add((Fisioterapeuta) obj);
}
e o método listaBairro(bairro) é o seguinte:
public List<Fisioterapeuta> listaBairro(String bairro) throws Exception {
open();
query = session.createQuery("from Fisioterapeuta where areaTrabalho like :bairro");
query.setString("bairro", "%" + bairro + "%");
return query.list();
}
bom, em resumo é um formulário de pesquisa ainda pessoa indica um bairro… o bean monta uma lista por meio da query e chama a página respConsultaFisioterapeutaBairro. nessa página eu tenho o seguinte pedaço:
<rich:dataTable width="980" value="#{managedBeanFisioterapeuta.listaBairro}" var="dados" rows="15" id="tabelaFisioterapeuta" reRender="ds">
<f:facet name="header">
<rich:columnGroup>
<rich:column>
<h:outputText value="Nome" />
</rich:column>
<rich:column>
<h:outputText value="CPF" />
</rich:column>
<rich:column width="9%">
<h:outputText value="Telefone" />
</rich:column>
<rich:column width="9%">
<h:outputText value="Celular" />
</rich:column>
<rich:column>
<h:outputText value="Área de atuação" />
</rich:column>
<rich:column width="8%">
<h:outputText value="Ação" />
</rich:column>
</rich:columnGroup>
</f:facet>
<rich:column filterBy="#{dados.nome}" filterEvent="onkeyup">
<h:outputText value="#{dados.nome}" />
</rich:column>
<rich:column filterBy="#{dados.cpf}" filterEvent="onkeyup">
<h:outputText value="#{dados.cpf}" />
</rich:column>
<rich:column>
<h:outputText value="#{dados.telefone}" />
</rich:column>
<rich:column>
<h:outputText value="#{dados.celular}" />
</rich:column>
<rich:column>
<h:outputText value="#{dados.areaTrabalho}" />
</rich:column>
<rich:column>
<a4j:commandLink action="#{managedBeanFisioterapeuta.recuperaFisioterapeuta}">
<h:graphicImage value="imagens/detalhar.jpg" width="20" height="20" styleClass="borda" id="imgDetalhar" />
<rich:toolTip value="Detalhar" for="imgDetalhar" />
<f:param id="idDetalhaFisioterapeuta" name="idDetalhaFisioterapeuta" value="#{dados.idFisioterapeuta}" />
<f:param name="acao" value="1" />
</a4j:commandLink>
<a4j:commandLink action="#{managedBeanFisioterapeuta.recuperaFisioterapeuta}">
<h:graphicImage value="imagens/edit.gif" width="20" height="20" styleClass="borda" id="imgEdit" />
<rich:toolTip value="Editar" for="imgEdit" />
<f:param id="idAlteraFisioterapeuta" name="idAlteraFisioterapeuta" value="#{dados.idFisioterapeuta}" />
<f:param name="acao" value="2" />
</a4j:commandLink>
<a4j:commandLink action="#{managedBeanFisioterapeuta.recuperaFisioterapeuta}" reRender="panelExcluiFisioterapeuta" oncomplete="Richfaces.showModalPanel('panelExcluiFisioterapeuta');">
<h:graphicImage value="imagens/excluir.gif" width="20" height="20" styleClass="borda" id="imgExcluir" />
<rich:toolTip value="Excluir" for="imgExcluir" />
<f:param id="idExcluiFisioterapeuta" name="idExcluiFisioterapeuta" value="#{dados.idFisioterapeuta}" />
<f:param name="acao" value="3" />
</a4j:commandLink>
</rich:column>
<f:facet name="footer">
<rich:datascroller for="tabelaFisioterapeuta" id="ds" renderIfSinglePage="false" />
</f:facet>
</rich:dataTable>
O problema todo é quando chega aí… eu faço a consulta, ele monta a tabela, mas os 3 <a4j:commandLink> ignoram completamente a existência do action, não fazendo nada quando se clica neles…
Se alguém puder ajudar agredeço muito.