Mudando o campo com ajax e validando

Dae galera, meu primeiro contato com o forum, to ai no TCC da facul, mas me ralando em JSF devido pedido dos professores.

Mas complicado conseguir ajuda.

Fiz uma tela de cliente herdando classe Pessoa, entao 2 classes filhas (PF e PJ) herdam de Pessoa. Tive que fazer acho eu q isso é gambi, mas nao encontrei ajuda um if ternario se TipoPessoa == ‘F’ ? clienteBean.pFisica.des_endereco: clienteBean.pJuridica.des_endereco… bem eu gostaria de na verdade fazer clienteBean.cliente.pJuridica.des_endereco, mas continuando com a ideia da herança, não sei se tem como.

E a outra questão é que tenho o seguinte codigo no xhtml:

<h:outputText id="lblcpf" for="cpf" value="CPF*:" rendered="#{clienteBean.tipoPessoa=='F'}" />
<p:inputMask id="cpf" mask="999.999.999-99" required="true" label="cpf" size="15" value="#{clienteBean.pFisica.cod_cpf}" rendered="#{clienteBean.tipoPessoa=='F'}">
	<f:ajax event="blur" execute="@this" listener="#{clienteBean.ValidaPessoa()}" />	
</p:inputMask>

<h:outputText id="lblcnpj" for="cnpj" value="CNPJ*:" rendered="#{clienteBean.tipoPessoa=='J'}" />
<p:inputMask id="cnpj" mask="99.999.999/9999-99" required="true" label="cnpj" size="20" value="#{clienteBean.pJuridica.cod_cnpj}" rendered="#clienteBean.tipoPessoa=='J'}">
	<f:ajax event="blur" execute="@this" listener="#{clienteBean.ValidaPessoa()}" />	
</p:inputMask>

Como podem ver tem a questao de renderizar caso eu escolha no botao radio pessoa fisica ele me mostra somente o campo CPF senao me mostra o campo CNPJ ao usar o CPF e validar se o mesmo é valido ele me retorna tudo certinho, mas ao escolher pessoa juridica e digitar o CNPJ ele nao faz nada, simplesmente nao chama o ValidaPessoa(). Alguem sabe o pq isso ocorre.???

Valeu! Agradeço pela ajuda q puderem dar, ja to a dias nisso.

Primeira coisa, quando for colocar trechos de códigos, use a tag [code] (neste formato, conhecido como tag BB).
Segunda coisa, herança só é boa quando você ganha com isso. Neste caso, não está ganhando nada, logo, o ideal seria usar agregação (ou seja, isolar a classe pessoa e as PessoaFisica e PessoaJuridica e fazer com que cada uma das últimas tenham uma Pessoa e não sejam uma Pessoa).

public class PessoaFisica{
    private Pessoa pessoa;
}
//
public class PessoaJuridica{
    private Pessoa pessoa;
}

Isso te dará mais flexibilidade para tratar a questão.
A terceira coisa e, especificamente sobre o teu problema, é que provavelmente algum componente está tendo erro na renderização e, quando você tenta acionar o método no managedBean, ele não consegue devido a este erro.
Com o firebug ou a ferramenta para desenvolvedores do Chrome você consegue ver o que acontece.

Obrigado pela ajuda kra, vou buscar seguir suas orientações.
Por enquanto muito obrigado.