Null Pointer a4j:commandLink ! HELP!

4 respostas
Javac

Galera GUJ, estou com uma problema q está m enchendo as ideias!!!
Tenho uma pagina jsf q funcina em seu método de cadastro de objetos tranquilamente. Mas tenho q incluir uma fucionalidade, inclusão do endereço do profissional, onde preciso que o usuário possa inserir + de um endereço.
Desta forma, ele deve inserir os valores nos campos e ao clicar em um commandLink (incluir endereço), uma tabela será rerenderizada, com os valores preenchidos no campo.

O problema é: ao clicar no os valores são enviados nullos para o Bean.

Qndo eu testo o botão de cadastro já existente, vj q ele consegue pegar tds os valores perfeitamente, mas meu não ta setando! O que faço?

Um abço a qm ajudar ;)

página:
<!-- área do endereço -->

						<h:panelGrid columns="2" cellspacing="5">
							<h:outputText value="Endereço"></h:outputText>
							<h:outputText value=""></h:outputText>
						</h:panelGrid>
						<h:panelGrid columns="4" cellspacing="5">
							<h:outputText value="Descrição do endereço:"></h:outputText>
							<h:panelGroup>
								<h:panelGrid>
									<h:inputText id="descricaoEndereco" required="true"
										value="#{manterProfissionalBolsaBean.descricaoEndereco}"></h:inputText>
									<rich:message for="descricaoEndereco" style="color:red;" />
								</h:panelGrid>
							</h:panelGroup>
							<h:outputText value="Logradouro:"></h:outputText>
							<h:panelGroup>
								<h:panelGrid>
									<h:inputText id="logradouro" required="true"
										value="#{manterProfissionalBolsaBean.logradouro}"></h:inputText>
									<rich:message for="logradouro" style="color:red;" />
								</h:panelGrid>
							</h:panelGroup>
						</h:panelGrid>
						<h:panelGrid columns="5" cellspacing="5" id="pgEndereco">
							<h:outputText value="Bairro:"></h:outputText>
							<h:panelGroup>
								<h:panelGrid>
									<h:inputText id="bairro" required="true"
										value="#{manterProfissionalBolsaBean.bairro}"></h:inputText>
									<rich:message for="bairro" style="color:red;" />
								</h:panelGrid>
							</h:panelGroup>
							<h:outputText value="CEP:"></h:outputText>
							<h:panelGroup>
								<h:panelGrid>
									<h:inputText id="cep" required="true"
										value="#{manterProfissionalBolsaBean.cep}"></h:inputText>
									<rich:message for="cep" style="color:red;" />
								</h:panelGrid>
							</h:panelGroup>
							<a4j:commandButton value="Buscar CEP"></a4j:commandButton>
						</h:panelGrid>
						<h:panelGrid columns="4" cellspacing="5">
							<h:outputText value="Complemento:"></h:outputText>
							<h:panelGroup>
								<h:panelGrid>
									<h:inputText id="complemento" required="true"
										value="#{manterProfissionalBolsaBean.complemento}"></h:inputText>
									<rich:message for="complemento" style="color:red;" />
								</h:panelGrid>
							</h:panelGroup>
							<h:outputText value="Numero:"></h:outputText>
							<h:panelGroup>
								<h:panelGrid>
									<h:inputText id="numero" required="true"
										value="#{manterProfissionalBolsaBean.numero}"></h:inputText>
									<rich:message for="numero" style="color:red;" />
								</h:panelGrid>
							</h:panelGroup>
						</h:panelGrid>
						<h:panelGrid columns="4" cellspacing="5">
							<h:outputText value="Estado:"></h:outputText>
							<h:panelGroup>
								<h:panelGrid>
									<h:inputText id="estado" required="true"
										value="#{manterProfissionalBolsaBean.estado}"></h:inputText>
									<rich:message for="estado" style="color:red;" />
								</h:panelGrid>
							</h:panelGroup>
							<h:outputText value="Municipio:"></h:outputText>
							<h:panelGroup>
								<h:panelGrid>
									<h:inputText id="municipio" required="true"
										value="#{manterProfissionalBolsaBean.municipio}"></h:inputText>
									<rich:message for="municipio" style="color:red;" />
								</h:panelGrid>
							</h:panelGroup>
						<rich:column>
								<a4j:commandLink value="Incluir Endereço"
									oncomplete="#{rich:component('tbEnderecoProfissional')}.show();"
									action="#{manterProfissionalBolsaBean.montarListaEndereco}"
									ajaxSingle="true" immediate="true">
								</a4j:commandLink>
							</rich:column>
						</h:panelGrid>
						<h:panelGrid>
							<rich:dataTable id="tbEnderecoProfissional" rows="20"
								rowKeyVar="rowEndereco"
								value="#{manterProfissionalBolsaBean.listaEnderecoProfissional}"
								var="varEndereco">
								<f:facet name="header">
									<h:outputText value="Endereço do Profissional" />
								</f:facet>
								<rich:column id="clnEndereco">
									<f:facet name="header">
										<h:outputText styleClass="headerText" value="Logradouro" />
									</f:facet>
									<h:outputText value="#{varEndereco.logradouro}"
										id="enderecoLogradouro" />
								</rich:column>
								<rich:column>
									<f:facet name="header">
										<h:outputText styleClass="headerText" value="Descrição" />
									</f:facet>
									<h:outputText value="#{varEndereco.descricaoEndereco}"
										id="enderecoDescricao">
									</h:outputText>
								</rich:column>
								<rich:column id="clnDeleteEndereco">
									<a4j:commandLink id="deleteEnderecoLink" ajaxSingle="true"
										oncomplete="#{rich:component('deleteEnderecoPanel')}.show()">
										<h:graphicImage value="/images/delete.gif" style="border:0" />
										<f:setPropertyActionListener value="#{rowEndereco}"
											target="#{manterProfissionalBolsaBean.currentRowEndereco}" />
									</a4j:commandLink>
									<rich:toolTip for="deleteEnderecoLink" value="Excluir" />
								</rich:column>
								<rich:column id="clnEditaEndereco">
									<a4j:commandLink id="editaEnderecoLink" ajaxSingle="true">
										<h:graphicImage value="/images/edit.gif" style="border:0" />
										<f:setPropertyActionListener value="#{rowEndereco}"
											target="#{manterProfissionalBolsaBean.currentRowEndereco}" />
									</a4j:commandLink>
									<rich:toolTip for="editaEnderecoLink" value="Editar" />
								</rich:column>
							</rich:dataTable>
						</h:panelGrid>
						<!-- fim da área do endereço -->

Vale ressaçtar q no managed bean, as variaveis estão perfeitamente declaradas e setadas. ;) :shock:

4 Respostas

L

experimente tirar isso:
ajaxSingle=“true” immediate=“true”

ou use um commandLink com <a4J:suport …>

Javac

mt obrigada!!! Fiz assim e funfou:

<h:panelGrid> <a4j:commandLink value="Incluir Endereço" action="#{manterProfissionalBolsaBean.montarListaEndereco}"> </a4j:commandLink> <a4j:support reRender="tbEnderecoProfissional" /> </h:panelGrid>

vlw !!! :wink:

Javac

Na verdade, descobri outro problema… o botão ta submetendo td o form e tava reclamando um campo requerido em uma aba sobreposta e eu n estava vendo.

<a4j:commandLink value="Incluir Endereço" action="#{manterProfissionalBolsaBean.montarListaEndereco}" reRender="tbEnderecoProfissional"> </a4j:commandLink>

Deste jeito já funciona… agora vou dar um jeito dele parar de submeter toda a pagina, acho q devo usar a4j:outputPanel, certo? =)

Sorry me, mas sou iniciante…

vlw

Javac

resolvi com a4j:region :wink:

Criado 2 de agosto de 2010
Ultima resposta 5 de ago. de 2010
Respostas 4
Participantes 2