Ajuda com converter no jsf 2.0 [RESOLVIDO]

3 respostas
tmvolpato

Estou tendo problema com o converter
segue abaixo meu código

Estou usando:

App server: Glassfish 3.1
jsf 2.0

@FacesConverter(value="produtoConverter",forClass=produtoConverter)
public class ProdutoConverter implements Converter{
	
	ProdutoSessao produtoSessao;

	@Override
	public Object getAsObject(FacesContext context, UIComponent component,
			String value) {
		if(value !=null && value.trim().length() >0){
			Integer id = Integer.valueOf(value);
			try { 
				  return produtoSessao.getProdutoById(id);
			}catch (Exception err) {
				throw new ConverterException("Não foi possível encontrar o produto do id" + value + "." + err.getMessage());
			}
		}
		return null;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent component,
			Object value) {
				
		if(value != null) {
			Produto produto = (Produto) value;
			return produto.getId().toString();
		}
		return "";
	}
	
	

}
private List<Produto> produtos;
	   private List<SelectItem> produtoSelect;

public List<SelectItem> getProdutoSelect() {
		if(this.produtoSelect == null){
			this.produtoSelect = new ArrayList<SelectItem>();
			
			produtos = bean.listarProdutos();
			this.montaDadosSelect(this.produtoSelect,produtos);
			
		}
		return produtoSelect;
	}
	private void montaDadosSelect(List<SelectItem> select, List<Produto> produtos){
		SelectItem item = null;
		if(produtos != null) {
			for (Produto produto : produtos) {
				item = new SelectItem(produto, produto.getNome());
				select.add(item);
				
			}
		}
	}
<p:selectOneMenu label="Nome do Produto" value="#{pedidoFace.beanSelecionado.nome}" converter="produtoConverter">
<f:selectItem itemValue="#{null}" itemLabel="Selecione" />
<f:selectItems value="#{pedidoFace.produtoSelect}" var="prod" itemLabel="#{prod.description}" itemValue="#{prod.value}"/>
</p:selectOneMenu>

no log aparece isso:

AVISO: Não foi possível encontrar o componente com a ID nomeProduto na exibição.

Obrigado desde de já

3 Respostas

tmvolpato

Problema resolvido

valeu…

tmvolpato
tmvolpato:
Estou tendo problema com o converter segue abaixo meu código

Estou usando:

App server: Glassfish 3.1
jsf 2.0

@FacesConverter(value="produtoConverter",forClass=produtoConverter)
public class ProdutoConverter implements Converter{
	
	ProdutoSessao produtoSessao;

	@Override
	public Object getAsObject(FacesContext context, UIComponent component,
			String value) {
		if(value !=null && value.trim().length() >0){
			Integer id = Integer.valueOf(value);
			try { 
				  return produtoSessao.getProdutoById(id);
			}catch (Exception err) {
				throw new ConverterException("Não foi possível encontrar o produto do id" + value + "." + err.getMessage());
			}
		}
		return null;
	}

	@Override
	public String getAsString(FacesContext context, UIComponent component,
			Object value) {
				
		if(value != null) {
			Produto produto = (Produto) value;
			return produto.getId().toString();
		}
		return "";
	}
	
	

}
private List<Produto> produtos;
	   private List<SelectItem> produtoSelect;

public List<SelectItem> getProdutoSelect() {
		if(this.produtoSelect == null){
			this.produtoSelect = new ArrayList<SelectItem>();
			
			produtos = bean.listarProdutos();
			this.montaDadosSelect(this.produtoSelect,produtos);
			
		}
		return produtoSelect;
	}
	private void montaDadosSelect(List<SelectItem> select, List<Produto> produtos){
		SelectItem item = null;
		if(produtos != null) {
			for (Produto produto : produtos) {
				item = new SelectItem(produto, produto.getNome());
				select.add(item);
				
			}
		}
	}
<p:selectOneMenu label="Nome do Produto" value="#{pedidoFace.beanSelecionado.nome}" converter="produtoConverter">
<f:selectItem itemValue="#{null}" itemLabel="Selecione" />
<f:selectItems value="#{pedidoFace.produtoSelect}" var="prod" itemLabel="#{prod.description}" itemValue="#{prod.value}"/>
</p:selectOneMenu>

no log aparece isso:

AVISO: Não foi possível encontrar o componente com a ID nomeProduto na exibição.

Obrigado desde de já

tmvolpato

O problema estava no converter mesmo, eu resolvi usando o exemplo do Rafael Ponte.

Valeu

Criado 13 de fevereiro de 2012
Ultima resposta 14 de fev. de 2012
Respostas 3
Participantes 1