Validacao JSP + Hibernate

Olá Pessoal

Estou com o seguinte problema, estou tentando usar validacao no Banco atraves do Hibernate, só que na minha pagina JSP mais me deparei com o seguinte problema.
Se eu insiro dados no modulo q eu abir (Ex. Cadastrar Cliente) ele valida corretamente, só que se por acaso eu abro
um modulo e queira fechar ele sem inserir dados, ele não aceita, fica acusando as validacoes.
Como eu faco para desconsiderar as validacões no caso de fechar o modulo sem inserir dados?

Desde já agradeco pela ajuda.

Segue o Codigo do Cadastro de Cliente


 <f:subview id="CadCliente">
  	
  	<rich:tabPanel>
  	<rich:tab label="Cadastrar Cliente">
  		<h:form id="cadastro">
  		
  		<rich:panel>
  			<f:facet name="panelcadcli">
  				Insira os Dados Pessoais do Cliente, campos marcados com * são obrigatorios.
  			</f:facet>
  		</rich:panel>
  		
  		<rich:spacer height="8" />
  		
  		<rich:panel>
  		<h:outputText value="Nome Completo"/>
  		<rich:spacer width="10" />
  		<h:inputText id="nome" value="#{clienteHandler.cliente.nome}"  >
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	  	
  	  	<h:outputText value="CPF"/>
  	  	<rich:spacer width="80" />
  	  	<h:inputText id="cpf" value="#{clienteHandler.cliente.cpf}">
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	     	  	  	  	
  	  	<h:outputText value="RG"/>
  	  	<rich:spacer width="85" />
  	  	<h:inputText id="rg" value="#{clienteHandler.cliente.rg}">
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	      	  	
  	  	<h:outputText value="Número Cartão SUS"/>
  	  	<rich:spacer width="15" />
  	  	<h:inputText id="cartaoSUS" value="#{clienteHandler.cliente.cartaosus}">
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	    
  	  	<h:outputText value="Data de Nascimento"/>
  	  	<rich:spacer width="15" />
  	  	<h:inputText id="dtaNascimento" value="#{clienteHandler.cliente.dataNascimento}">
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	  	
  	  	<h:outputText value="Endereco"/>
  	  	<rich:spacer width="15" />
  	  	<h:inputText id="endereco" value="#{clienteHandler.cliente.endereco}">
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	  	
  	  	<h:outputText value="Bairro"/>
  	  	<rich:spacer width="15" />
  	  	<h:inputText id="bairro" value="#{clienteHandler.cliente.bairro}">
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	    
  	    <h:outputText value="Cidade"/>
  	  	<rich:spacer width="15" />
  	  	<h:inputText id="cidade" value="#{clienteHandler.cliente.cidade}">
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	  	 	     	    
  	    <h:outputText value="Mãe"/>
  	  	<rich:spacer width="15" />
  	  	<h:inputText id="mae" value="#{clienteHandler.cliente.mae}">
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	     	  	 	  	
  	  	<h:outputText value="Pai"/>
  	  	<rich:spacer width="15" />
  	  	<h:inputText id="pai" value="#{clienteHandler.cliente.pai}">
  	  	</h:inputText>
  	  	<h:outputText value=" *"/><br/>
  	    	    
  	    <h:outputText value="Telefone"/>
  	  	<rich:spacer width="15" />
  	  	<h:inputText id="telefone" value="#{clienteHandler.cliente.telefone}">
  	  	</h:inputText><br/>
  	  		    
		<h:outputText value="Data do Cadastro"/>
  	  	<rich:spacer width="15" />
  	  	<h:inputText id="dtacadastro" readonly="false" value="#{clienteHandler.cliente.dataCadastro}">
  	  	</h:inputText><br/>    	  	
  	  	</rich:panel>
  	  	
  	  	<br/><br/>
  	  	
  	  	<h:commandButton value="Salvar" action="#{clienteHandler.salva}"/>
  	 	 	 	
  	 	<a4j:commandButton ajaxSingle="true" value="Limpar"
                    reRender="nome, cpf, rg, cartaoSUS, dataNascimento, endereco, bairro, cidade,
                    	mae, pai, telefone, dta_cadastro" status="commonstatus">
                    <a4j:actionparam name="n" value="" assignTo="#{clienteHandler.cliente.nome}" />
                    <a4j:actionparam name="j" value="" assignTo="#{clienteHandler.cliente.cpf}" />
        </a4j:commandButton>
  	 	
  	 	<h:commandButton value="Fechar"  action="#{ddmenu.mostrarCadastrarCliente}" />
		
		</h:form>
		
  	 </rich:tab>
  	 
  	 </rich:tabPanel>
  	  
</f:subview>

Parte do Bean que exibe ou nao a pagina.


public class DropDownMenu {

private boolean CadastrarCliente = false;

get e set

public void mostrarCadastrarCliente () {
				this.CadastrarCliente=!CadastrarCliente;
			}

Pagina onde a Subview é exibida

<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title> Saude Total </title>
</head>
<body>
  <f:view>
  	<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">

    <style>
    .pic {
        margin-bottom: -4px;
        margin-right: 2px;
    }
    </style>

    <h:form>
    
        <rich:toolBar>
        	
        	<rich:dropDownMenu>
            	
                <f:facet name="label"> 
                    <h:panelGroup>
                        <h:graphicImage value="/images/icons/cadastrar.gif" styleClass="pic"/>
                        <h:outputText value="Cadastrar"/>
                    </h:panelGroup>
                </f:facet>
	
				<rich:menuItem submitMode="ajax" value="Cliente"
                    action="#{ddmenu.mostrarCadastrarCliente}" icon="/images/icons/create_doc.gif" />
                            
        </rich:toolBar>
        
        <rich:separator/>
       	
       	
       	<a4j:outputPanel ajaxRendered="true">
       	      
        	<h:panelGroup id="CadastrarCliente" rendered="#{ddmenu.cadastrarCliente}">
        		<jsp:include page="Cliente.jsp"/>
        	</h:panelGroup>
               		
       </a4j:outputPanel>
        

        
    </h:form>
    
    <img src="images/spacer.gif" width="1" height="5" alt="" border="0" />
    <br />

 </ui:composition>
 

 
  </f:view>
</body>

</html>

A Classe com as Validacoes

@Entity
public class Cliente {
	
	
	@Id
	@GeneratedValue
	@Column(name="id_cli")
	private Integer id;
	
	@Column(name="nome_cli", nullable=false, length=60)
	private String nome;
	
	@Column(name="cpf_cli", unique=true, nullable=false, length=11)
	private String cpf;
	
	@Column(name="rg_cli", unique=true, nullable=false, length=15)
	private String rg;
	
	@Column(name="end_cli", nullable=false, length=60)
	private String endereco;
	
	@Column(name="bairro_cli", nullable=false, length=50)
	private String bairro;
	
	@Column(name="cidade_cli", nullable=false, length=20)
	private String cidade;
	
	@Column(name="tel_cli", nullable=false, length=12)
	private String telefone;
	
	@Temporal(TemporalType.DATE)
	@Column(name="dtnasc_cli", nullable=false)
	private Calendar dataNascimento;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name="dtcadastro_cli", nullable=false)
	private Calendar dataCadastro;
	
	@Column(name="cartaosus_cli", unique=true, nullable=false, length=14)
	private Integer cartaosus;
	
	@Column(name="mae_cli", nullable=false, length=45)
	private String mae;
	
	@Column(name="pai_cli", length=45)
	private String pai;

gets e sets

Dimas, basta você deixar o commandButton que fecha a tela em um formulário (h:form) separado que as validações do formulario de cadastro não vão ser disparadas.

OK, obrigado Fabio.