JSF: Renderizando componentes seletivamente com <a4j:support> (SOLUCIONADO)
7 respostas
R
Rodrigo_Manhaes
Bom dia!
Tenho o seguinte problema: há um combo para a seleção do país de origem de uma pessoa. Caso o país de origem seja o Brasil (default), há um combo com os estados para que se selecione a naturalidade. Caso não seja o Brasil, este combo deve desaparecer e, em seu lugar, aparecer um campo para o ano de chegada da pessoa ao Brasil e a sua naturalidade (como input).
As tecnologias utilizadas são JSF/Facelets. Implementei isto com ajax4jsf do seguinte modo:
O método paisOrigemOnChange() roda a contento no sevidor e altera o resultado do metodo isEstrangeiro(), consultado nos atributos rendered dos dois .
Minha dúvida é: tem algo de errado no que eu fiz? Deixei de fazer algo? Não consegui achar nenhum exemplo disto na web e, lendo a documentação oficial, achei que fosse funcionar.
Sou iniciante no JSF e estou desenvolvendo um protótipo onde preciso renderizar dois painéis dentro de uma única janela modal., O primeiro painel contém o form de consulta de CPF e o segundo traz o retorno desta consulta. Adequei o meu código a solução aqui postada sobre ter um “painel pai” e reRenderizá-lo, e ter uma variável booleana no manageBean para tratar a visibilidade dos painéis. A idéia é: quando clicar no botão de consulta o painel de consulta deveria ser omitido e o de retorno de dados exibido. Só que quando clico no botão de consulta do primeiro painel, nada acontece. Pelo console verifico que o método booleano isVisivel() está sendo chamado quando chamo a página. Mas após isso, ao acionar o botão de consulta, observo que nada aparece no console. Alguém pode me ajudar ??? Segue abaixo o código da página e o do manageBean. Lembro que trata-se apenas de protótipo.
Desde já agradeço a ajuda dos feras.
Abçs.
Mônica.
Página consultar_cpf.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="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:a4j="http://richfaces.org/a4j"xmlns:rich="http://richfaces.org/rich"xmlns:serpro="http://www.demoiselle.gov.br"><rich:modalPanelid="panelConsultaCPF"styleClass="modalForms modalFormsAbas"width="1000"height="400"><f:facetname="header"><h:panelGroup><h:outputTextvalue="Consultar CPF"></h:outputText></h:panelGroup></f:facet><f:facetname="controls"><a4j:commandButtonstyleClass="closeModal"onclick="Richfaces.hideModalPanel('panelConsultaCPF')"/></f:facet><!-- PAINEL CONTAINER --><f:view><a4j:form><a4j:outputPanelid="container"><!-- PAINEL ENTRADA CPF --><a4j:outputPanelid="visivel"rendered="#{cpfMB.visivel}"layout ="block"><fieldsetclass="line"><legendclass="legend">Informe CPF</legend><divclass="line lineForm"><divclass="unit size1of1 unitGroup noBorder"><divclass="unit unitData"><h:inputTextvalue="#{cpfMB.numero}"styleClass="medium"/></div></div><spanclass="line containerButtons"><a4j:commandButtonactionListener="#{cpfMB.consultarCPF}"value="Consultar"styleClass="button"reRender="container"/></span></div></fieldset></a4j:outputPanel><!-- FIM PAINEL ENTRADA CPF --><!-- PAINEL RETORNO DADOS CPF --><a4j:outputPanelid="invisivel"rendered="#{!cpfMB.visivel}"layout ="block"><divclass="line containerButtons"><a4j:commandButtonactionListener="#{cpfMB.consultarCPF}"value="Nova Consulta"styleClass="buttonPage"reRender="container"/><a4j:commandButtonstyleClass="buttonPage"action="#"value="Fechar [X]"onclick="javascript:self.close()"/></div></a4j:outputPanel><!-- FIM PAINEL RETORNO DADOS CPF --></a4j:outputPanel></a4j:form></f:view><!-- FIM PAINEL CONTAINER --></rich:modalPanel></html>