Problemas para acessar objeto

Pessoal, tô com o seguinte problema:

No meu sistema, tenho as seguintes Classes: País, Estado e Cidade.

[code]public class Pais {

private Integer paisId;
private String nome;

}

public class Estado {

private Integer estadoId;
private Pais pais
private String nome;

}

public class Cidade{

private Integer cidadeId;
private Estado estado
private String nome;

}[/code]

Na aplicação Cidade, preciso fazer um filtro selecionando país e carregando os estados daquele país. Fiz o filtro dessa maneira:

<ui:define name="label">Pais</ui:define> <h:selectOneMenu value="#{cidade.estado.pais}" id="pais" label="Pais" required="true"> <s:selectItems var="_pais" value="#{paises}" label="#{_pais.nome}" noSelectionLabel="Selecione" /> <s:convertEntity /> <a:support event="onchange" reRender="carregarEstados" ajaxSingle="true" action="#{filterAction.carregarEstados(cidade.estado.pais.paisId)}" /> </h:selectOneMenu>

O problema é que país não é um atributo de cidade, aí gera o seguinte erro: model validation failed:/cidade/cidade_edit.xhtml @23,49 value="#{cidade.estado.pais}": Target Unreachable, ‘estado’ returned null on ‘org.domain.infralogjava.entity.Cidade’

Até posso criar um atributo país em cidade, e não-persistir esse atributo, mas aí complica meu método Edit, pois o value ficaria value="#{cidade.pais}" e como país não é persistido, não tras nada do banco e a combo vem vazia.

Alguem tem alguma solução pra isso?
Sei que deve ser algo bem simples, desculpem minha falta de conhecimento.

Cara,

me diz uma coisa, esse objeto cidade que você faz referência dentro da página, ele é uma propriedade de algum ManagedBean ?

Se for esse o caso você deve acessar da seguinte forma:

idDoManagedBeanNoFacesConfig.nomeDaPropriedade

[]'s

[quote=seuparada]Cara,

me diz uma coisa, esse objeto cidade que você faz referência dentro da página, ele é uma propriedade de algum ManagedBean ?

Se for esse o caso você deve acessar da seguinte forma:

idDoManagedBeanNoFacesConfig.nomeDaPropriedade

[]'s[/quote]
Opa, valeu pela resposta, mas como estou usando o JBoss Seam a maneira de acessar é do jeito que fiz mesmo.

Alguém mais poderia ajudar?

Blz,

outra pergunta então: todos os níveis da hierarquia estão sendo inicializados ? Pela mensagem parece que não… me parece que tá faltando você setar a propriedade estado do objeto cidade… Dá uma verificada aí…

Ex:


Cidade cidade = new Cidade();
cidade.setEstado(new Estado());

[]'s

[quote=seuparada]Blz,

outra pergunta então: todos os níveis da hierarquia estão sendo inicializados ? Pela mensagem parece que não… me parece que tá faltando você setar a propriedade estado do objeto cidade… Dá uma verificada aí…

Ex:


Cidade cidade = new Cidade();
cidade.setEstado(new Estado());

[]'s[/quote]

Era isso mesmo velhinho!
Valeu aí, abraços!