Meu Managed Bean está anotado com View Scoped e quando eu adiciono esse select one menu
<p:selectOneMenu value="#{beanPrincipal.categoria}"
converter="categoriaConverter"
style="width: 115px;font-size:10pt">
<f:selectItems value="#{beanPrincipal.listaCategoria}"
var="categoria" itemLabel="#{categoria.nome}"
itemValue="#{categoria}" />
</p:selectOneMenu>
Os action dos botões que chama a função de salvar não funciona mais… mas ai se eu mudo pra request eles voltam a funcionar… lembrando que meu select one menu está carregando perfeitamente as categorias e salvando no banco com RequestScoped.
Você faz algum tipo de injeção de um ManagedBean em outro? Lembrando que o ManagedBean injetado deve ter escopo maior que o que recebe a injeção.
Ocorre algum erro? Exception?
Não tenho nenhum Managed Bean Injetado e não ocorre nenhum erro, quando eu tiro o select one menu ele volta a funcionar…
Acredito que você deve olhar com carinho o seu “categoriaConverter”. Você já tentou ao invés de passar o objeto Categoria no itemValue, passar um valor Long(ou Integer)?
Assim:
<p:selectOneMenu value="#{beanPrincipal.categoria.id}"
style="width: 115px;font-size:10pt">
<f:selectItems value="#{beanPrincipal.listaCategoria}"
var="categoria" itemLabel="#{categoria.nome}"
itemValue="#{categoria.id}" />
</p:selectOneMenu>
ou até mesmo no seu listaCategoria retornar um List de SelectItem e deixar assim:
<h:selectOneMenu value="#{beanPrincipal.categoria.id}" style="width: 115px;font-size:10pt">
<f:selectItems value="#{beanPrincipal.listaCategoria}/>
</h:selectOneMenu>
no seu ManagedBean, ficaria algo do tipo:
public List<SelectItem> getListaCategoria() {
List<SelectItem> lista = new ArrayList<SelectItem>();
for (Categoria categoria : this.getCategoriaList()) {
lista.add(new SelectItem(categoria.getId(), categoria.getNome()));
}
return lista;
}
Ta tudo certo, agora eu testando aqui, parte por partes… quando eu tiro o select one menu do form… os botões funcionam… quando eu coloco ele dentro do form da pagina para de funcionar…
polar12,
Uma dúvida: você sobrescreveu os métodos equals e hashCode da sua classe Categoria?
Seu converter pode não funcionar direito se não sobrescrever.
Opa tudo bem, era esse mesmo o problema… consegui resolver ontem a noite VLW !
Tudo bem, graças a Deus.
Que bom que conseguiu. Só não esquece de colocar um “[RESOLVIDO]” no final do título do tópico para ajudar outras pessoas.
Valeu. Abraço.