Problemas com validações JSF

2 respostas
vilmar_ferreira

Boa tarde, estou com o seguinte problema e ficarei muito grato pela atenção.
Tenho uma página jsf com um formulário. Neste formulário existem três botões (commandButton) que no caso dão submit na página. Que são o cadastrar, listar e limpar.

Dois campos do total é obrigatório. No caso coloquei validações neles. Eu gostaria que as validações funcionacem apenas no botão cadastrar. No caso quando o cliente for listar ou limpar o formulário que os campos não sejam requeridos. Como eu faria isso???
Logo abaixo está o código.

Desde já agradeço a atenção.

Abraço

<f:view>
		<h:form id="cadastro">
		
			<h:panelGrid rowClasses="linhasCad" styleClass="tabelaCad" headerClass="cabecalhoCad" border="0" columns="3">
				<f:facet name="header">
					<h:outputText value="Pessoa"/>
				</f:facet>
					<h:outputText value="Identificador:"/>
					<h:inputText id="identificador" value="#{PessoaView.pes.identificador}" readonly="true"/>
					<rich:message for="identificador"/>
					<h:outputText value="RG:"/>
					<h:inputText required="true" requiredMessage="RG é obrigatório!!" id="rg" value="#{PessoaView.pes.rg}">
						<rich:ajaxValidator event="onblur" />
					</h:inputText>
					<rich:message for="rg"/>
					<h:outputText value="Município:"/>
					<h:inputText id="municipio" value="#{PessoaView.pes.municipio}"/>
					<rich:message for="municipio"/>
					<h:outputText value="Órgão Expeditor:"/>
					<h:inputText id="rgorgaoexp" value="#{PessoaView.pes.rgorgaoexp}"/>
					<rich:message for="rgorgaoexp"/>
					<h:outputText value="Data Emissão RG:"/>
					<rich:calendar id="rgemissao" value="#{PessoaView.pes.rgemissao}" converter="converteAnoMySQL" datePattern="yyyy-MM-dd"/>
					<rich:message for="rgemissao"/>
					<h:outputText value="CPF:"/>
					<h:inputText id="cpf" value="#{PessoaView.pes.cpf}"/>
					<rich:message for="cpf"/>
					<h:outputText value="Sexo:"/>
					<h:inputText maxlength="1" id="sexo" value="#{PessoaView.pes.sexo}"/>
					<rich:message for="sexo"/>
					<h:outputText value="Título Eleitoral:"/>
					<h:inputText id="titeleitoral" value="#{PessoaView.pes.titeleitoral}"/>
					<rich:message for="titeleitoral"/>
					<h:outputText value="Email:"/>
					<h:inputText id="email" value="#{PessoaView.pes.email}"/>
					<rich:message for="email"/>
					<h:outputText value="Endereço:"/>
					<h:inputText id="endereco" value="#{PessoaView.pes.endereco}"/>
					<rich:message for="endereco"/>
					
					
					
			</h:panelGrid>
			<br />
			<h:panelGrid columns="4" styleClass="tabelaBot">
			<a4j:commandButton value="Cadastrar" rendered="#{PessoaView.botCad}" styleClass="botao" action="#{PessoaView.create}"/>
			<a4j:commandButton value="Alterar" rendered="#{PessoaView.botAlt}" styleClass="botao" action="#{PessoaView.update}"/>
			<a4j:commandButton value="Listar" styleClass="botao" action="#{PessoaView.mudaListar}" />
			<a4j:commandButton value="Limpar" styleClass="botao" action="#{PessoaView.limpa}"/>
			</h:panelGrid>
			
			<br />
			<br />
			
		</h:form>
		<h:form id="resultado">
		<rich:dataTable rowClasses="linha_a, linha_b" styleClass="tabela" headerClass="cabecalho"  value="#{PessoaView.todos}" var="item"
		 rendered="#{PessoaView.listar}" cellpadding="2" cellspacing="0">
			<f:facet name="header">
				<h:outputText value="Pessoas Cadastradas"/>
			</f:facet>
			<h:column>
				<f:facet name="header">
					<h:outputText value="RG"/> 
				</f:facet>
				<h:outputText value="#{item.rg}"/>
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Municipio"/> 
				</f:facet>
				<h:outputText value="#{item.municipio}"/>
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="CPF"/>
				</f:facet>
				<h:outputText value="#{item.cpf}"/>
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Sexo"/>
				</f:facet>
				<h:outputText value="#{item.sexo}"/>
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="E-Mail"/>
				</f:facet>
				<h:outputText value="#{item.email}"/>
			</h:column>
			<h:column>
				<f:facet name="header">
					<h:outputText value="Operação"/>
				</f:facet>
				<h:commandLink action="#{PessoaView.editar}">
					<h:graphicImage styleClass="link" url="imagens/rtg_rate.gif" title="Alterar"/>
				</h:commandLink>
				&nbsp;&nbsp;
				<h:commandLink action="#{PessoaView.excluir}">
					<h:graphicImage styleClass="link" url="imagens/bRmv.gif" title="Apagar"/>
				</h:commandLink>
			</h:column>
			
		</rich:dataTable>
		</h:form>
	</f:view>
	</body>
	</html>

2 Respostas

alberto_ribeiro

Boa tarde, se não me engano tem uma propriedade para colocar no botão/link chamada imediate=“true”, porém não vai validar nada e vai executar a chamada …

[]'s

vilmar_ferreira

Alberto Ribeiro funcionou como eu gostaria. Muito obrigado pela atenção e ajuda.
Precisando, estarei a disposição.

Abraço

Criado 23 de abril de 2010
Ultima resposta 23 de abr. de 2010
Respostas 2
Participantes 2