Ajuda com ajax4jsf

4 respostas
L

estou tentando implementar a seguinte situacao, em um cadastro de clientes tenho um selectBooleancheckbox,que qdo selecionado renderize o tipo de pessoa selecionada , tipo pessoa fisica ou pessoa juridica mas nao estou conseguindo alguem pode dar uma luz por favor.
meu selectBooleanCheckbox ta assim:

<h:outputText value="#{msg.fisica}"></h:outputText>
                                  <h:selectBooleanCheckbox value="cliente.cliente.tipopesso"  id="s1" immediate="true">
                                  <a4j:support ></a4j:support>
                                  </h:selectBooleanCheckbox> 
                                  <h:outputText value="#{msg.juridica}"></h:outputText>
                                  <h:selectBooleanCheckbox value="cliente.cliente.tipopesso"  id="s2" immediate="true">                                 
                                  </h:selectBooleanCheckbox>

esta e uma das regioes que pretendo renderizar

<a4j:region id="pf" rendered="#{ cliente.cliente.tipopessoa}" immediate="true">
									<h:panelGrid columns="2" width="1121">
									<h:panelGroup>
										<h:outputText value="#{msg.nome}"></h:outputText>        
										
										<h:inputText value="#{cliente.pessoafisica.nome}"
											style=" width : 641px;" styleClass="select" immediate="true"></h:inputText>
										&lt;/h:panelGroup&gt;<br>
										&lt;h:panelGroup&gt;	
										&lt;h:outputText value="#{msg.cpf}"&gt;&lt;/h:outputText&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
										&lt;h:inputText value="#{cliente.pessoafisica.cpf}"
											styleClass="select" style=" width : 211px;" immediate="true"&gt;&lt;/h:inputText&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
										 &lt;h:outputText value="#{msg.rg}"&gt;&lt;/h:outputText&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
										&lt;h:inputText value="#{cliente.pessoafisica.rg}"
											styleClass="select" style=" width : 325px;" immediate="true"&gt;&lt;/h:inputText&gt;		
										&lt;/h:panelGroup&gt;

									&lt;/h:panelGrid&gt;
								&lt;/a4j:region&gt;

Desde ja mto obrigado.

4 Respostas

T

Amigão
na tag
<a4j:support ></a4j:support>
precisa colocar as propriedades reRender=“region” e event=“onclick”

<a4j:support reRender="region" event="onclick" />

Acho que é isso

L
cara fiz como vc falw tipo coloquei no evento onchange para renderizar 3 regioes,so que eu queria saber como eu faco para renderizar de acordo com o o valor que for passado para o bean no caso sera "F" qdo pessoa fisica e "J" qdo juridica como faco para utilizar isso:
&lt;a4j:region id="pf"  rendered=#{cliente.cliente.tipopessoa=F}immediate="true"&gt;  aqui ele so  renderizaria se o valor de cliente.cliente.tipopessoa for F

&lt;a4j:region id="pf"  rendered=#{cliente.cliente.tipopessoa=F}immediate="true"&gt;


[code]
 &lt;h:outputText value="#{msg.tipopessoa}"&gt;&lt;/h:outputText&gt; &nbsp;                   
                                  	&lt;h:selectOneMenu value="#{cliente.cliente.tipopessoa}" styleClass="select" style=" width : 160px;" onchange="submit()" immediate="true"&gt;
                                  	&lt;f:selectItem itemValue="F" itemLabel="#{msg.fisica}"/&gt;
                                  	&lt;f:selectItem itemValue="J" itemLabel="#{msg.juridica}"/&gt;
                                  	&lt;a4j:support immediate="true" event="onchange" reRender="pf,pj,r" requestDelay="200"&gt;&lt;/a4j:support&gt;
                                  	&lt;/h:selectOneMenu&gt;
                                  	&lt;h:panelGrid columns="2" width="1052"&gt;&lt;h:panelGroup&gt;
									&lt;h:outputText value="#{msg.cidade}"&gt;&lt;/h:outputText&gt;
									&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
									&lt;h:selectOneMenu value="#{cliente.cliente.cidadeid}"
										style=" width : 214px;" styleClass="select"&gt;
										&lt;f:selectItems value="#{cliente.cidadeids}"/&gt;
									&lt;/h:selectOneMenu&gt;




&lt;a4j:region id="pf"  immediate="true"&gt;
									&lt;h:panelGrid columns="2" width="1121"&gt;
									&lt;h:panelGroup&gt;
										&lt;h:outputText value="#{msg.nome}"&gt;&lt;/h:outputText&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
										
										&lt;h:inputText value="#{cliente.pessoafisica.nome}"
											style=" width : 641px;" styleClass="select" immediate="true"&gt;&lt;/h:inputText&gt;
										&lt;/h:panelGroup&gt;<br>
										&lt;h:panelGroup&gt;	
										&lt;h:outputText value="#{msg.cpf}"&gt;&lt;/h:outputText&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
										&lt;h:inputText value="#{cliente.pessoafisica.cpf}"
											styleClass="select" style=" width : 211px;" immediate="true"&gt;&lt;/h:inputText&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
										 &lt;h:outputText value="#{msg.rg}"&gt;&lt;/h:outputText&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
										&lt;h:inputText value="#{cliente.pessoafisica.rg}"
											styleClass="select" style=" width : 325px;" immediate="true"&gt;&lt;/h:inputText&gt;		
										&lt;/h:panelGroup&gt;

									&lt;/h:panelGrid&gt;
								&lt;/a4j:region&gt;

								&lt;a4j:region id="pj"  immediate="true"&gt;
									&lt;h:panelGrid columns="3" width="1109"&gt;
									&lt;h:panelGroup&gt;
										&lt;h:outputText value="#{msg.nomefantasia}"&gt;&lt;/h:outputText&gt;&nbsp;
										&lt;h:inputText value="#{cliente.pessoajuridica.nomefantasia}"
											style=" width : 319px;" id="nf" maxlength="40"
											required="true" styleClass="select"
											requiredMessage="#{msg.obrigatorio}" label="#{msg.nomefantasia}" immediate="true"&gt;&lt;/h:inputText&gt;&nbsp;
										&lt;h:message for="nf" styleClass="erro" errorStyle="erro"&gt;&lt;/h:message&gt;
										&lt;/h:panelGroup&gt;<br><br>
										&lt;h:panelGroup&gt;
										&lt;h:outputText value="#{msg.cnpj}"&gt;&lt;/h:outputText&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
										&lt;h:inputText value="#{cliente.pessoajuridica.cnpj}" id="cnpj"
											maxlength="12" required="true"
											requiredMessage="#{msg.obrigatorio}" styleClass="select"
											style=" width : 167px;" label="#{msg.cnpj}" immediate="true"&gt;&lt;/h:inputText&gt;&nbsp;
										&lt;h:message for="cnpj" styleClass="erro"&gt;&lt;/h:message&gt;		
										&lt;/h:panelGroup&gt;								
									&lt;/h:panelGrid&gt;

								&lt;/a4j:region&gt;

valew pela ajuda.

F

Cara… olhei teu código… mas vou sugerir como eu faço num código mais simples aki.
no bean…tu cria um método lá pra retornar um boolean…
pera…vou mostrar em código q falando eu sou mt ruim… :stuck_out_tongue:

–isso aki no teu bean

public boolean getRenderizarFisica(){
  return (this.cliente.cliente.tipoPesso.equals("F"));
}

–tela

<h:panelGroup id="idGroup">
   <a4j:region id="geral">
          <h:outputText value="#{msg.fisica}"></h:outputText>  
          <h:selectBooleanCheckbox value="cliente.cliente.tipopesso"  id="s1" immediate="true">  
           <a4j:support id="supportChange" event="onchange" reRender="geral" />
           </h:selectBooleanCheckbox>

           <a4j:region id="pf" rendered="#{cliente.cliente.renderizarFisica}">
                   ----coisas aki
           </a4j:region>

           <a4j:region id="pj" rendered="#{!cliente.cliente.renderizarFisica}">
                   ----coisas aki
           </a4j:region>

   </a4j:region>
</h:panelGroup>

da uma olhada ai… talvez n seja a melhor prática… mas é como uso e
funciona legal…
se o codigo num tiver funcionando totalmente… da uma olhada pq fiz
ele rapidinho e direto aki no forum.
espero ter ajudado…

flw

Javabuntu

cara basta colocar dentro dessa tags e tudo renderiza automático:

<a4j:outputPanel id="panel" ajaxRendered="true"/>
Criado 28 de março de 2008
Ultima resposta 29 de mar. de 2008
Respostas 4
Participantes 4