Bom, tenho uma pagina xhtml que usa varios managedBeans, alguns deles utilizam do valueChangeListener para receber as listas com os valores, eu gostaria de saber como é possivel setar valores
Pois estou tentando desta maneira abaixo, mas não funciona
Parte do managedBean GravaObra
GravaCidade c = new GravaCidade();
c.setCidadesMany(null);
Pagina XHTML
Olá fabiobh! Me desculpa, mas não entendi exatamente o que você deseja fazer. Você possui um formulário e precisa adicionar o conteúdo do mesmo no banco?
No JSF há um recurso chamado PropertyActionListener, no qual eu menciono qual objeto eu desejo setar no ManagedBean. Veja um exemplo:
O atributo value diz ao JSF qual atributo eu desejo setar no contatoBean.contato. Isso exige que eu tenha um método setContato(Contato c) para receber esse contato sendo enviado. Essa é uma forma no JSF de setar atributos arbitrariamente.
O que vc fez foi passar um valor da pagina para o managedBean, o que eu queria fazer era o contrário, a partir do managedBean setar um valor na pagina.
Porém no meu caso não esta sendo simples, pois minha pagina html usa varios selectOneMenu, e cada um deles é carragado através de um managedBean diferente
Sim, era isso que eu estava tentando fazer, baseado no meu
valueChangeListener="#{gravaCidade.mudaListaEstado}"Eu mudo as listas
Por exemplo, na hora que a pessoas seleciona o Pais Brasil(tem cerca de uns 10 paises pra escolher) no selectOneMenu o valueChangeListener passa um evento pro managedBean e trata ele devolvendo somente os Estados referentes aquele pais, até ai tudo bem.
O problema é na hora que chamo a pesquisa, a pesquisa exibe varias informações de uma obra cadastrada no sistema, com seu pais e estado, com isso o usuario tem como clicar em um commandButton dentro das linhas do resultado e este por si ira exibir as informações pertinentes a uma obra
Nessa hora é q ocorre o problema, pois ja tenho que setar o valor da lista que ira preencher o selectOneMenu junto com o valor q sera atribuido a ele, porém não consigo setar a lista sendo q ela vem de um outro managedBean
[code]
public void editar() throws ClassNotFoundException {
String id = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(“id”); //System.out.println("consegui aparecer: " + id);
Integer numero = null;
Session sessao = CriadorDeSessaoNovo.getSession();
//seleciona cidade baseada no id
Criteria listagem_query = sessao.createCriteria(Obra.class).
add(Restrictions.eq("obr_id", new Integer(id))).
addOrder(Order.asc("obr_nom"));
listagem_query.uniqueResult();
List<Obra> listaQuery = (listagem_query.list());
for (Obra obra : listaQuery) {
setCid_id(obra.getCidade().getCid_id());
setIns_id(obra.getInspetoria().getIns_id());
//setObr_atividades(obr_atividades);
setObr_bairro(obra.getObr_bairro());
setObr_caixa_postal(obra.getObr_caixa_postal());
setObr_cep(obra.getObr_cep());
setObr_cnpj(obra.getObr_cnpj());
setObr_id(obra.getObr_id());
setObr_logradouro(obra.getObr_logradouro());
setObr_nom(obra.getObr_nom());
setObr_nom_anteriores(obra.getObr_nom_anteriores());
setObr_nom_fantasia(obra.getObr_nom_fantasia());
setObr_nom_oficial(obra.getObr_nom_fantasia());
setObr_nom_oficial(obra.getObr_nom_oficial());
setObr_sede_inspetoria(obra.getObr_sede_inspetoria());
GravaCidade c = new GravaCidade();
c.setCidadesMany(null);
//setObr_tipo_ensino(obr_tipo_ensino);
//setObr_tipo_social(obr_tipo_social);
}
sessao.close();
}
[/code]Repare que o managedBean que é responsavel por exibir a lista é diferente do managedBean que esta fazendo a pesquisa
Espero que eu tenha conseguido explicar , t+