Problema com validar e limpar formulário

1 resposta
M

Olá.
Estou desenvolvendo uma aplicação JSF 2.0 e Primefaces no Eclipse.

Tenho um formulário de inserção, com dois campos um p:inputText, e um p:inputMask, e alguns botões: voltar, gravar, limpar.

Meu problema começa quando eu clico em Limpar. Preciso que seja desconsiderado a validação dos campos.

Código da .xhtml reduzido:

<!-- txtNomeCargo -->
						<h:panelGrid id="nomeCargo" columns="2" cellpadding="0" cellspacing="0" width="450" styleClass="espacamentoGrid">
							<h:panelGroup>
								<h:outputText value="#{msgs.label_cargo}:*" styleClass="rotulo"/>
								<p:inputText 
									id="txtNomeCargo" 
									style="margin-left:57px;" 
									size="23" 
									maxlength="21" 
									value="#{cargoBean.nomeCargo}"
									required="true" 
									requiredMessage="Campo Obrigatório"
								/>
								
							</h:panelGroup>
							<h:panelGroup>
								<p:message for="txtNomeCargo"/>
							</h:panelGroup>				
						</h:panelGrid>
						<!-- txtNomeCargo -->

<!-- txtCargaHoraria -->
						<h:panelGrid columns="2" id="cargaHoraria" cellpadding="0" cellspacing="0" width="450" styleClass="espacamentoGrid">
							<h:panelGroup>
								<h:outputText value="#{msgs.label_carga_horaria}:*" styleClass="rotulo"/>
								<p:inputMask 
									style="margin-left:5px;" 
									size="5" 
									id="txtCargaHoraria" 
									value="#{cargoBean.cargaHoraria}" 
									mask="99:99"
									required="true" 
									requiredMessage="Campo Obrigatório"
									/>
								 
							</h:panelGroup>
							<h:panelGroup>
								<p:message for="txtCargaHoraria"/>
							</h:panelGroup>	
						</h:panelGrid>
						<!-- txtCargaHoraria -->

Os campos estão como: required="true" para serem validados, porém isso implica no funcionamento do botão limpar, que não executa sua ação.
Tentei alterar o valor ro required em tempo de execução, mas não obtive sucesso.

O código do botão limpar no .xhtml:

<!-- Botão limpar -->
						<h:panelGrid columns="1" cellpadding="0" cellspacing="0" style="float:right;" styleClass="alinhamentoBotao">
							<h:panelGroup>
								<h:commandButton 
									image="/imagens/limpar.png" 
									action="#{cargoBean.limparCampos}"  
									immediate="true"
								/>
							</h:panelGroup>
						</h:panelGrid>
						<!-- Botão limpar -->
E no bean:
public String limparCampos(){
	
		setCargaHoraria(null);
		setNomeCargo(null);
		
		return "";
	}

Ao clicar no botão limpar, a tela "pisca" como sendo renderizada, porém os inputs na tela não são limpos.

Tentei também colocar no botão o immediate = true, mas não funcionou também.

Se alguém puder me ajudar, ficarei grato.

Obrg.

1 Resposta

R

Tenta dar um reRender

Criado 21 de junho de 2011
Ultima resposta 21 de jun. de 2011
Respostas 1
Participantes 2