Valores nao estao sendo atualizados no form JSF

1 resposta
P

Pessoal, meu selectItem retorna o valor que é para retornar somente quando eu preencho todos os campos requireds do form, mas se eu clico no botão de adicionar os dados na rich:dataTable, sem os demais campos estarem preenchidos ele não adiciona, mesmo colocando immediate = true.

Segue o código:

<%@include file="../../include/tagLibs.jsp"%> 

<html>

    <%@include file="../../include/head.jsp"%> 
    
  <body onLoad="resolucao();"> 

        <f:view>
        	<a4j:keepAlive beanName="AutoInfracaoAmbientalView" ajaxOnly="false"/>
            <div id="geral">
				<%@include file="../../include/header.jsp"%>   
				<div id="titulo">
					<div>
						<rich:spacer width="20px"/>
						<h:outputText styleClass="link2" value="Registros de Fiscalização"/>
					</div>
				</div>
				<div id="conteudo">		                
                    <a4j:form id="frmPrincipal" >
                    
                    	<div style="padding-left: 10px;padding-right10px; float: left;width: 215px;min-height:394px; border-right:1px solid #54673d">
                    			  	
							<rich:panelMenu style="width:200px"  mode="ajax" 
							        iconExpandedGroup="disc" iconCollapsedGroup="disc" 
							        iconExpandedTopGroup="chevronUp" iconGroupTopPosition="right" 
							        iconCollapsedTopGroup="chevronDown">
							        
							        <rich:panelMenuGroup label="Registros de Fiscalização" expanded="true">
							            
							            <rich:panelMenuItem>
							                <a4j:commandLink value="Consulta" action="fiscalizacaoRegistroConsulta"></a4j:commandLink>
							            </rich:panelMenuItem>
							            <rich:panelMenuItem>
							                <a4j:commandLink value="Denuncia" action="fiscalizacaRegistroDenuncia"></a4j:commandLink>
							            </rich:panelMenuItem>
							            <rich:panelMenuItem >
							                <a4j:commandLink value="Ofício de Solicitação" action="fiscalizacaRegistroOfSolicitacao"></a4j:commandLink>
							            </rich:panelMenuItem>
							            <rich:panelMenuItem>
							                <a4j:commandLink value="Notificação Ambiental" action="fiscalizacaRegistroNotAmbiental"></a4j:commandLink>
							            </rich:panelMenuItem>
							            <rich:panelMenuItem>
							                <a4j:commandLink value="Auto Infração Ambiental" action="fiscalizacaRegistroAia"></a4j:commandLink>
							            </rich:panelMenuItem>
							        
							        </rich:panelMenuGroup>
							
							</rich:panelMenu>
                    		
                    	</div> 
                    	
                    	<div style="float: left; width: 720px;min-height:400px;padding-left: 10px">
							<h:outputLabel id="title" value="Registro de Fiscalização - Auto de Infração Ambiental" />
							<br>
							
							<h:outputLabel 	id="outNumeroAIA"
											value="Nº AIA" >
							</h:outputLabel>
							<h:inputText 	id="inNumeroAIA"
											value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalNumero}" 
											required="true"
											requiredMessage="Campo Nº AIA obrigatório"
											converterMessage="Digite apenas número no campo: Nº AIA">
								<f:convertNumber integerOnly="true"/>
							</h:inputText>
							<br>
							
							<h:outputLabel	id="outAutuado"
											value="Nome do Autuado" >
							</h:outputLabel>
							<h:inputText 	id="inAutuado"
											value="#{AutoInfracaoAmbientalView.labelAutuada}"
											required="true"
											requiredMessage="Campo Nome do Autuado obrigatório">
								<a4j:support	oncomplete="#{rich:component('mpPessoaAutuada')}.show()"
												event="onclick"
												reRender="mpPessoaAutuada"
												ajaxSingle="true"
												focus="inCPFCNPJ">
								</a4j:support>		
							</h:inputText>
							<a4j:commandLink 	id="cbBuscarAutuado"
												oncomplete="#{rich:component('mpPessoaAutuada')}.show()"
												reRender="mpPessoaAutuada"
												ajaxSingle="true"
												ignoreDupResponses="true"
												focus="inCPFCNPJ">
												<h:graphicImage style="cursor:pointer" 
																value="images/lupa.png" >
												</h:graphicImage>
							</a4j:commandLink>
							<br>
							
							<h:outputLabel 	id="outEnderecoDaInfracao"
											value="Endereço da Infração" >
							</h:outputLabel>
							<h:inputText 	id="inEnderecoDaInfracao"
											value="#{AutoInfracaoAmbientalView.labelEnderecoDaInfracao}" 
											required="true"
											requiredMessage="Campo Endereço da Infração obrigatório">
								<a4j:support	oncomplete="#{rich:component('mpEndereco')}.show()"
												event="onclick"
												reRender="mpEnderecoDaInfracao"
												ajaxSingle="true"
												focus="inCEP">
								</a4j:support>
							</h:inputText>
							<a4j:commandLink	id="cbBuscarEnderecoInfracao"
												oncomplete="#{rich:component('mpEndereco')}.show()"
												reRender="mpEnderecoDaInfracao"
												ajaxSingle="true"
												ignoreDupResponses="true"
												focus="inCEP">
												<h:graphicImage style="cursor:pointer" 
																value="images/lupa.png" >
												</h:graphicImage>									
							</a4j:commandLink>
							<br>							
							
							<h:outputLabel 	id="outDataDaInfracao"
											value="Data da Infração" >
							</h:outputLabel>
							<rich:calendar	id="richCalendarInfracao"
											value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalDataInfracao}"
											datePattern="dd/MM/yyyy"
											required="true"
											requiredMessage="Campo Data Data da Infração obrigatório">
							</rich:calendar>
							<br>
							
							<h:outputLabel 	id="outCategoriaDaFiscalizacao"
											value="Categoria da Fiscalização" >
							</h:outputLabel>
							<h:selectOneMenu 	id="selCategoriaDaFiscalizacao"
												value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalCategoriaFiscalizacao.cafisCodigo}"
												required="true"
												requiredMessage="Campo Categoria da Fiscalização obrigatório"
												immediate="true">
								<f:selectItem itemValue="" itemLabel="Selecione"/>
								<f:selectItems value="#{AutoInfracaoAmbientalView.retornarCategoriaDaFiscalizacao}"/>
							</h:selectOneMenu>
							<br>
							
							<h:outputLabel 	id="outIndicativoDeMultaInicial"
											value="Indicativo de Multa Inicial" >
							</h:outputLabel>
							<h:inputText 	id="inIndicativoDeMultaInicial"
											value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalMultaInicial}" 
											required="true"
											requiredMessage="Campo Indicativo de Multa Inicial obrigatório">
							</h:inputText>
							
							<h:outputLabel 	id="outIndicativoDeMultaFinal"
											value="Indicativo de Multa Final" >
							</h:outputLabel>
							<h:inputText 	id="inIndicativoDeMultaFinal"
											value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalMultaFinal}" 
											required="true"
											requiredMessage="Campo Indicativo de Multa Final obrigatório">
							</h:inputText>
							<br>
							
							<h:outputLabel 	id="outObservacao"
											value="Observação" >
							</h:outputLabel>
							<h:inputText 	id="inObservacao"
											value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalObservacao}" 
											required="true"
											requiredMessage="Campo Observação obrigatório">
							</h:inputText>
							<br>
							
							<h:outputLabel 	id="outDescricao"
											value="Descrição" >
							</h:outputLabel>
							<h:inputText 	id="inDescricao"
											value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalDescricao}" 
											required="true"
											requiredMessage="Campo Descrição obrigatório">
							</h:inputText>														
							<br>			
														
							<h:panelGroup id="panelGroupEnquadramento">
								<h:outputLabel 	id="outArtigo"
												value="Artigo" >
								</h:outputLabel>
								<h:selectOneMenu	id="selArtigo"
													value="#{AutoInfracaoAmbientalView.enq.artigo.enquadramentoArtigoCodigo}"
													required="false"
													requiredMessage="Campo Artigo obrigatório">
									<f:selectItem 	itemValue="" itemLabel="Selecione..."/>
									<f:selectItems 	value="#{AutoInfracaoAmbientalView.retornarArtigo}"/>
								</h:selectOneMenu>
								
								<h:outputLabel 	id="outItem"
												value="Item" >
								</h:outputLabel>
								<h:selectOneMenu 	id="selItem"
													value="#{AutoInfracaoAmbientalView.enq.item.enquadramentoItemCodigo}"
													required="false"
													requiredMessage="Campo Item obrigatório">
									<f:selectItem itemValue="" itemLabel="Selecione..."/>
									<f:selectItems value="#{AutoInfracaoAmbientalView.retornarItem}"/>
								</h:selectOneMenu>
								
								<h:outputLabel 	id="outparagrafo"
												value="Parágrafo" >
								</h:outputLabel>
								<h:selectOneMenu 	id="selParagrafo"
													value="#{AutoInfracaoAmbientalView.enq.paragrafo.enquadramentoParagrafoCodigo}"
													required="false"
													requiredMessage="Campo Parágrafo obrigatório">
									<f:selectItem itemValue="" itemLabel="Selecione..."/>
									<f:selectItems value="#{AutoInfracaoAmbientalView.retornarParagrafo}"/>
								</h:selectOneMenu>
								
								<h:outputLabel 	id="outInciso" 
												value="Inciso" >
								</h:outputLabel>
								<h:selectOneMenu 	id="inInciso"
													value="#{AutoInfracaoAmbientalView.enq.inciso.enquadramentoIncisoCodigo}"
													required="false"
													requiredMessage="Campo Inciso obrigatório">
									<f:selectItem itemValue="" itemLabel="Selecione..."/>
									<f:selectItems value="#{AutoInfracaoAmbientalView.retornarInciso}"/>
								</h:selectOneMenu>
								
								<h:outputLabel 	id="outAlinea"
												value="Alinea" >
								</h:outputLabel>
								<h:selectOneMenu	id="selAlinea"
													value="#{AutoInfracaoAmbientalView.enq.alinea.enquadramentoAlineCodigo}"
													required="false"
													requiredMessage="Campo Alinea obrigatório">
									<f:selectItem itemValue="" itemLabel="Selecione..."/>
									<f:selectItems value="#{AutoInfracaoAmbientalView.retornarAlinea}"/>
								</h:selectOneMenu>
								
								<h:outputLabel 	id="outLei"
												value="Lei" >
								</h:outputLabel>
								<h:selectOneMenu 	id="selLei"
													value="#{AutoInfracaoAmbientalView.enq.tipoLei.tipoLeiCodigo}"
													required="false"
													requiredMessage="Campo Lei obrigatório">
									<f:selectItem itemValue="" itemLabel="Selecione..."/>
									<f:selectItems value="#{AutoInfracaoAmbientalView.retornarTipoLei}"/>
								</h:selectOneMenu>
								<a4j:commandButton	id="cbAdicionar"
													value="Adicionar"
													action="#{AutoInfracaoAmbientalView.adicionarEnquadramento}"
													reRender="panelGroupEnquadramento" >
								</a4j:commandButton>
							
								<rich:dataTable	id="dataTable"
												var="enq"
												value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalEnquadramentos}"
												rowClasses="linha1,linha2"
												rows="10"
												width="100%">
									<f:facet name="header">
										<h:outputText value="Enquadramentos" />
									</f:facet>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Artigo" />
										</f:facet>
											<h:outputText value="#{enq.artigo.enquadramentoArtigoCodigo}" />
									</rich:column>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Item" />
										</f:facet>
											<h:outputText value="#{enq.item.enquadramentoItemCodigo}" />
									</rich:column>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Parágrafo" />
										</f:facet>
											<h:outputText value="#{enq.paragrafo.enquadramentoParagrafoCodigo}" />
									</rich:column>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Inciso" />
										</f:facet>
											<h:outputText value="#{enq.inciso.enquadramentoIncisoCodigo}" />
									</rich:column>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Alínea" />
										</f:facet>
											<h:outputText value="#{enq.alinea.enquadramentoAlineCodigo}" />
									</rich:column>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Lei" />
										</f:facet>
											<h:outputText value="#{enq.tipoLei.tipoLeiCodigo}" />
									</rich:column>
									<rich:column>
										<f:facet name="header">
											<h:outputText value="Remover" />
										</f:facet>
									</rich:column>
								</rich:dataTable>
								<rich:datascroller align="center" for="dataTable" maxPages="10" page="1"
								                           renderIfSinglePage="false"/>
							</h:panelGroup>
							<br>
							
							<h:outputLabel 	id="outNNA"
											value="Nº N. A." >
							</h:outputLabel>
							<h:inputText 	id="inNNA"
											value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalNotificacaoAmbiental.notificacaoAmbientalCodigo}" 
											immediate="true"
											required="false"
											requiredMessage="Campo Nº N. A. obrigatório">
							</h:inputText>
							<br>
							
							<h:outputLabel 	id="ouCodigo"
											value="Código" >
							</h:outputLabel>
							<h:inputText 	id="inCodigo"
											value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalCodigoNNA}" 
											required="true"
											requiredMessage="Campo Código obrigatório">
							</h:inputText>
							<br>
							
							<h:outputLabel 	id="outDataDoRecebimento"
											value="Data do Recebimento" >
							</h:outputLabel>
							<rich:calendar	id="richCalendarRecebimento"
											value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalDataRecebimento}"
											datePattern="dd/MM/yyyy"
											required="true"
											requiredMessage="Campo Data do Recebimento obrigatório">
							</rich:calendar>
							<br>
							
							<h:outputLabel 	id="outSubstituicaoDoAIA"
											value="Substituição do AIA" >
							</h:outputLabel>
							<h:inputText 	id="inSubstituicaoDoAIA"
											value="" 
											required="false"
											requiredMessage="Campo Substituição do AIA obrigatório">
							</h:inputText>
							<br>
							
							<h:outputLabel 	id="outAutuadoPreposto"
											value="Autuado Preposto" >
							</h:outputLabel>
							<h:inputText 	id="inAutuadoPreposto"
											value="#{AutoInfracaoAmbientalView.labelAutuadaPreposto}"
											required="true"
											requiredMessage="Campo Autuado Preposto obrigatório">
								<a4j:support	oncomplete="#{rich:component('mpPessoaAutuadaPreposto')}.show()"
												event="onclick"
												reRender="mpAutuadaPreposto"
												ajaxSingle="true"
												focus="inCPFCNPJ">
								</a4j:support>
							</h:inputText>
							<a4j:commandLink 	id="cbBuscarAutuadoPreposto"
												oncomplete="#{rich:component('mpPessoaAutuadaPreposto')}.show()"
												reRender="mpAutuadaPreposto"
												ajaxSingle="true"
												ignoreDupResponses="true"
												focus="inCPFCNPJ" >
												<h:graphicImage style="cursor:pointer" 
																value="images/lupa.png" >
												</h:graphicImage>
							</a4j:commandLink>
							<br>
							
							<h:outputLabel 	id="outTestemunha1"
											value="Testemunha 1" >
							</h:outputLabel>
							<h:selectOneMenu 	id="selTestemunha1"
												value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalTestemunha1.colaborador.pessoCodigo}"
												required="true"
												requiredMessage="Campo Testemunha 1 obrigatório">
								<f:selectItem itemValue="" itemLabel="Selecione..."/>
								<f:selectItems value="#{AutoInfracaoAmbientalView.retornarColaborador}"/>
							</h:selectOneMenu>
							
							<h:outputLabel 	id="outTestemunha2"
											value="Testemunha 2">
							</h:outputLabel>
							<h:selectOneMenu 	id="selTestemunha2"
												value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalTestemunha2.colaborador.pessoCodigo}"
												required="true"
												requiredMessage="Campo Testemunha 2 obrigatório">
								<f:selectItem itemValue="" itemLabel="Selecione..."/>
								<f:selectItems value="#{AutoInfracaoAmbientalView.retornarColaborador}"/>
							</h:selectOneMenu>
							
							<h:outputLabel 	id="outAgenteFiscal"
											value="Agente Fiscal" >
							</h:outputLabel>
							<h:selectOneMenu 	id="selAgenteFiscal"
												value="#{AutoInfracaoAmbientalView.aia.autoInfracaoAmbientalAgenteFiscal.colaborador.pessoCodigo}"
												required="true"
												requiredMessage="Campo Agente Fiscal obrigatório">
								<f:selectItem itemValue="" itemLabel="Selecione..."/>
								<f:selectItems value="#{AutoInfracaoAmbientalView.retornarColaborador}"/>
							</h:selectOneMenu>
							<br>
							
							<a4j:commandButton	id="cButtonSalvarRascunho"
												value="Salvar Rascunho!"
												action="#{AutoInfracaoAmbientalView.salvarRascunho}"
												oncomplete="#{rich:component('mpMensagem')}.show()"
												reRender="frmPrincipal, mpMensagem">
							</a4j:commandButton>
							
							<a4j:commandButton 	id="cButtonSalvarGerarProcesso"
												value="Salvar e Gerar Processo!"
												action="#{AutoInfracaoAmbientalView.salvarGerarProcesso}"
												oncomplete="#{rich:component('mpMensagem')}.show()"
												reRender="frmPrincipal, mpMensagem">
							</a4j:commandButton>									
							
						
							
						</div>
					</a4j:form>                       
                </div>

			<%@include file="../../include/mpMensagem.jsp"%>
            <%@include file="../../include/footer.jsp" %>
            <%@include file="mpPessoaAutuada.jsp" %>
            <%@include file="mpEndereco.jsp" %>
            <%@include file="mpPessoaAutuadaPreposto.jsp" %>
            </div>
        </f:view>
    </body>
</html>

1 Resposta

J

Olá Phil,

Tente colocar o atributo “execute” para direcionar onde o botão deve buscar os dados (dentro de qual componente).
Ex:

<a4j:commandButton   id="cbAdicionar"
         value="Adicionar"  
         action="#{AutoInfracaoAmbientalView.adicionarEnquadramento}"  
         reRender="panelGroupEnquadramento" 
         execute="panelGroupEnquadramento">
</a4j:commandButton>

Tive um problema parecido, porém em um cadastro onde os dados passados para os inputs não funcionavam, ele passava os parâmetros como 0 (para o tipo int) e “” (vazio, para String).
Colocando o atributo “execute” na taglib do commandButton, funcionou. Espero que funcione pra ti também.

Criado 26 de agosto de 2011
Ultima resposta 26 de ago. de 2011
Respostas 1
Participantes 2