Formatação para pessoa fisica e pessoa Juridica

Pessoal Boa noite.

Estou com um probleminha.

Tenho um Form de Cliente.

No meu sistema a Classe pai é Cliente com duas classes filhas (PessoaFisica) e (PessoaJuridica).

No meu JSP, tenho que criar um campo radio ou select que quando eu escolho pessoa fisica ele habilita os dados (rg, cpf) e se eu escolho pessoa Juridica habilita (cnjp, etc…)

como criar este procedimento no JSP???

alguem pode me ajudar?

Obrigado! :

Você vai ter que usar JavaScript.
Um exemplo bem simples.

[code]
<script Language=“JavaScript”>
function habilita(v) {
if (v == 1) {
document.formulario.rg.disabled = true;
document.formulario.cpf.disabled = false;
} else {
document.formulario.cpf.disabled = true;
document.formulario.rg.disabled = false;
}
}
</script>

<form name=“formulario”>
<input type=“radio” name=“group1” value=“Milk” onclick=“habilita(1)”>PJ

<input type=“radio” name=“group1” value=“Butter” onclick=“habilita(2)”>PF

RG: &lt;input type="text" name="rg" value="" disabled='true'&gt;<br>
CPF:&lt;input type="text" name="cpf" value="" disabled='true'&gt;<br>

</form>[/code]
O mais legal seria você usar JQuery.

Fiz algo como o que vc está precisando utilizando JSF 2, xhtml e primefaces. Não sei quais as tecnologias vc está utilizando porém ai vai uma versão adaptada, espero ajudar.

<h:panelGrid columns="2" cellspacing="1">
	<h:selectOneRadio id="tipoPessoa" valueChangeListener="#{clienteMB.trocarMascara}"> 
		<f:selectItems value="#{clienteMB.tpPessoa}" />
	</h:selectOneRadio>
</h:panelGrid>

<p:outputPanel>
        <h:outputLabel value="CPF/CNPJ: *"/>	
        <p:inputMask mask="#{clienteMB.mascaraCpfCnpj}" id="pesCpfCnpj" size="20" value="#{clienteMB.cpfcnpj}" required="true" 
		requiredMessage="CPF/CNPJ é obrigatório!" validator="validadorCpfCnpj" />
</p:outputPanel>

método para trocar a máscara


	/**
	 *  método para trocar a máscara do campo CPF/CNPJ quando o usuário alterar o tipo da pessoa. 
	 * @param evt evento de alteração do valor do campo
	 */
	public void trocarMascara(ValueChangeEvent evt){
		itemSelecionado.setValue(evt.getNewValue());
		if(itemSelecionado.getValue() != null){
			mascaraCpfCnpj(itemSelecionado.getValue().toString());
		}
	}

método para setar a máscara

/** * método para setar a máscara de CPF/CNPJ e o tpPessoa * @param tipoPessoa */ public void mascaraCpfCnpj(String tipoPessoa){ if (tipoPessoa.equalsIgnoreCase("PJ")) { this.setMascaraCpfCnpj("99.999.999/9999-99"); this.getPessoa().setTpPessoa("PJ"); } else { this.setMascaraCpfCnpj("999.999.999-99"); this.getPessoa().setTpPessoa("PJ"); } }

Obrigado.

Vi 2 exemplos bastante interessante… vou ver como vou utiliza-los

Romarcio, obrigado, consegui fazer com o seu codigo, ficou legal

só estou com uns probleminhas na hora de mostrar os dados, pois se eu nao digito as informações do Pessoa fisica e cadastro, acusa um erro que não encontrou nada em RG, etc, embora os campos permitem null

mas vou tentar resolver.

Obrigado!!!

[quote=romarcio]Você vai ter que usar JavaScript.
Um exemplo bem simples.

[code]
<script Language=“JavaScript”>
function habilita(v) {
if (v == 1) {
document.formulario.rg.disabled = true;
document.formulario.cpf.disabled = false;
} else {
document.formulario.cpf.disabled = true;
document.formulario.rg.disabled = false;
}
}
</script>

<form name=“formulario”>
<input type=“radio” name=“group1” value=“Milk” onclick=“habilita(1)”>PJ

<input type=“radio” name=“group1” value=“Butter” onclick=“habilita(2)”>PF

RG: &lt;input type="text" name="rg" value="" disabled='true'&gt;<br>
CPF:&lt;input type="text" name="cpf" value="" disabled='true'&gt;<br>

</form>[/code]
O mais legal seria você usar JQuery.[/quote]