Select one Menu + View Scoped

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.