Ajuda Uso do Ajax do Primefaces

2 respostas
renansrr

Olá meus caros, estou com dificuldade pare renderizar um combo da minha página xhtml, a tag <p:ajax> está chamando certinho o meu metodo carregando as cidades de acordo com o estado mas na hora de atualizar a combo aparece o erro de Null Pointer, não sei pq visto que o combo está preenchido, por favor se puderem me ajudar. segue o codigo da página.

<?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:h="http://java.sun.com/jsf/html"
	xmlns:p="http://primefaces.prime.com.tr/ui"
	xmlns:f="http://java.sun.com/jsf/core">
<f:view contentType="text/html">

</f:view>
<h:head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
	<link rel="stylesheet" type="text/css" href="../estilos/padrao.css"/>
</h:head>
<h:body>
	<h:form prependId="false">
		<p:panel id="panel" header="Manutenção de Funcionário">
			<table width="100%">
				<tr>
					<td align="left">
						<p:commandButton value="Gravar" actionListener="#{funcionarioFrm.gravar}" update="msgs" />
					</td>
					<td align="right">
						<p:commandButton value="Voltar" action="../funcionario/lista.faces" ajax="false"/>
					</td>
				</tr>
				<tr>
					<td>
						<p:tabView effect="opacity" effectDuration="normal">
							<p:tab title="Dados Pessoais">
								<h:panelGrid columns="3">
									<table>
										<tr>
											<td>
												<h:outputText value="Nome:" />
												<p:inputText value="#{funcionarioFrm.funcionario.funcionario.nome}"	id="nome" />
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Telefone:" /> 
												<p:inputMask mask="([telefone removido]" value="#{funcionarioFrm.funcionario.funcionario.telefone}" />
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Celular" /> 
												<p:inputMask mask="([telefone removido]" value="#{funcionarioFrm.funcionario.funcionario.celular}"/>
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Data Nasc." />
												<p:calendar value="#{funcionarioFrm.data}" effect="explode" />
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="CPF:" /> 
												<p:inputMask mask="[CPF removido]"  value="#{funcionarioFrm.funcionario.funcionario.cpf}"/>
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Situação:"/> 
												<h:selectOneMenu styleClass="select" id="situacao" value="#{funcionarioFrm.funcionario.funcionario.situacao}">
                        	        		        <f:selectItems value="#{funcionarioFrm.situacao}"/>
                                               	</h:selectOneMenu>
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Cargo:"/>
												<h:selectOneMenu styleClass="select" id="cargo" value="#{funcionarioFrm.funcionario.funcionario.cargo}">
                        	        		        <f:selectItems value="#{funcionarioFrm.cargo}"/>
                                               	</h:selectOneMenu>
                                            </td>
										</tr>
									</table>
								</h:panelGrid>
							</p:tab>
							<p:tab title="Endereço">
								<h:panelGrid columns="3">
									<table>
										<tr>
											<td>
												<h:outputText value="UF:" /> 
												<h:selectOneMenu styleClass="select" id="uf" value="#{funcionarioFrm.funcionario.funcionario.municipio.estado.id}">
                        	        		        <f:selectItems value="#{funcionarioFrm.uf}" var="uf"/>
                        	        		        <p:ajax listener="#{funcionarioFrm.carregaCidades}"
                        	        		        	event = "change"
                        	        		        	update = "cidade,msgs,comboCidade"
                        	        		        	
                        	        		        	/>
                        	        		    </h:selectOneMenu>
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Cidade:" />
												<h:selectOneMenu disabled="#{funcionarioFrm.habilitaCidade}" styleClass="select" id="cidade" value="#{funcionarioFrm.funcionario.funcionario.municipio.id}">
                        	        		        <f:selectItems id="comboCidade" value="#{funcionarioFrm.municipio}"/>
                        	        		    </h:selectOneMenu>
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Cep:" /> 
												<p:inputMask mask="99999-999" value="#{funcionarioFrm.funcionario.funcionario.cep}" />
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Nº:" /> 
												<p:inputText value="#{funcionarioFrm.funcionario.funcionario.numeroEndereco}"/>
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Bairro:" /> 
												<p:inputText value="#{funcionarioFrm.funcionario.funcionario.bairro}" />
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Logradouro:" /> 
												<p:inputText value="#{funcionarioFrm.funcionario.funcionario.logradouro}" />
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Complemento:" /> 
												<p:inputText value="#{funcionarioFrm.funcionario.funcionario.complemento}"/>
											</td>
										</tr>
									</table>
								</h:panelGrid>
							</p:tab>
							<p:tab title="Dados de Usuário">
								<h:panelGrid columns="3">
									<table>
										<tr>
											<td>
												<h:outputText value="Login:" />
												<p:inputText value="#{funcionarioFrm.funcionario.funcionario.usuario.login}" />
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Senha:" /> 
												<p:password value="#{funcionarioFrm.funcionario.funcionario.usuario.senha}" feedback="true" minLength="6" />
											</td>
										</tr>
										<tr>
											<td>
												<h:outputText value="Perfil:" /> 
												<h:selectOneMenu styleClass="select" id="perfil" value="#{funcionarioFrm.funcionario.funcionario.usuario.perfil}">
                        	        		        <f:selectItems value="#{funcionarioFrm.perfil}"/>
                        	        		    </h:selectOneMenu>
											</td>
										</tr>
									</table>
								</h:panelGrid>
							</p:tab>
						</p:tabView>
					</td>
				</tr>
			</table>
			<!--  AREA DE MENSAGENS -->
            <table width="100%">
               <tr>
                  <td>
                     <fieldset>
                          <h:panelGroup id="erros">
                           	<p:messages id="msgs" showDetail="true" globalOnly="true"/> 
                          </h:panelGroup>
                     </fieldset>
                  </td>
               </tr>                        
           </table>
		</p:panel>
	</h:form>
</h:body>
</html>

2 Respostas

andii.brunetta

no lugar de p:ajax, tente usar o f:ajax(nativo do JSF 2.0)
Nessa postagem tem essa estrutura de seleciona um combo, atualiza outro:
http://javasemcafe.blogspot.com/2011/03/jsf-20-ajax-nativo.html

kleins

Posta o código do metodo do seu MB que está fazendo o update no combo…

Abs

Criado 16 de maio de 2011
Ultima resposta 20 de mai. de 2011
Respostas 2
Participantes 3