Galerinha to com o seguinte problema
tenho uma lista de selectonemenu que estão fazendo vários filtros,mais quando vou mostra o resultado dele
ele me retorna o seguinte erro:
{0}: Ocorreu um erro de conversão.
Galerinha to com o seguinte problema
tenho uma lista de selectonemenu que estão fazendo vários filtros,mais quando vou mostra o resultado dele
ele me retorna o seguinte erro:
{0}: Ocorreu um erro de conversão.
o codigo do meu bean da minha js e do meu converter
Bean
package visao;
import implementacoes.InterfaceBean;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.primefaces.event.FlowEvent;
import org.primefaces.event.RowEditEvent;
import dao.ClienteDao;
import dao.DefeitoDao;
import dao.MarcaDao;
import dao.ModeloDao;
import dao.ProdutoDao;
import entidade.Cliente;
import entidade.Defeito;
import entidade.Marca;
import entidade.Modelo;
import entidade.Processo;
import entidade.Produto;
@ManagedBean(name="processobean")
@SessionScoped
public class ProcessoBean implements Serializable,InterfaceBean {
/**
*
*/
private static final long serialVersionUID = 8197375602768731410L;
private Marca marcaSelecionada ;
private Produto produtoSelecionado ;
private Cliente clienteSelecionado = new Cliente();
private Modelo modeloSelecionado = new Modelo();
private Cliente cliente;
private Defeito defeitoSelecionado ;
private Processo processo = new Processo();
private static Logger logger = Logger.getLogger(ProcessoBean.class.getName());
private List<Object> listaCliente;
private List<Object> listaDefeito;
private List<Modelo> listaModelo;
private List<Object> listaMarca;
private List<Produto> listaProduto;
private List<Modelo> sugestoes = new ArrayList<Modelo>();
private boolean skip;
@PostConstruct
public void init(){
listaMarca = new MarcaDao().listaMarca();
}
public List<Produto> produtosMarca() {
Marca marca = marcaSelecionada;
listaProduto = new ProdutoDao().produtoMarca(marca);
return listaProduto;
}
public List<Modelo> modeloProduto(){
listaModelo = new ModeloDao().modeloProduto(produtoSelecionado);
return listaModelo;
}
public List<Object> defeitoProduto(){
listaDefeito = (ArrayList<Object>) new DefeitoDao().defeitoProduto(produtoSelecionado);
return listaDefeito;
}
public List<Modelo> teste(String query){
List<Modelo> sugestoes = new ArrayList<Modelo>();
for (Modelo j : this.listaModelo) {
if (j.getModelo().startsWith(query)) {
sugestoes.add(j);
}
}
return sugestoes;
}
public List<Object> listarObject() {
return null;
}
@Override
public Object prepararAdicionarObject() {
return null;
}
@Override
public void editObject(RowEditEvent event) {
// TODO Auto-generated method stub
}
@Override
public String deleteObject(RowEditEvent event) {
// TODO Auto-generated method stub
return null;
}
@Override
public void saveObject() {
processo.setDefeito(defeitoSelecionado);
}
public String onFlowProcess(FlowEvent event) {
logger.info("Current wizard step:" + event.getOldStep());
logger.info("Next step:" + event.getNewStep());
if(skip) {
skip = false;
return "confirm";
}
else {
return event.getNewStep();
}
}
public List<Object> getListaCliente() {
if (listaCliente == null) {
listaCliente = (ArrayList<Object>) new ClienteDao().listaCliente();
}
return this.listaCliente;
}
public void setListaCliente(List<Object> listaCliente) {
this.listaCliente = listaCliente;
}
public List<Object> getListaDefeito() {
if (listaDefeito == null) {
listaDefeito = (ArrayList<Object>) new DefeitoDao().listaDefeito();
}
return this.listaCliente;
}
public List<Modelo> getListaModelo() {
return listaModelo;
}
public void setListaDefeito(List<Object> listaDefeito) {
this.listaDefeito = listaDefeito;
}
public void setListaModelo(List<Modelo> listaModelo) {
this.listaModelo = listaModelo;
}
public Processo getProcesso() {
return processo;
}
public Defeito getDefeitoSelecionado() {
return defeitoSelecionado;
}
public void setDefeitoSelecionado(Defeito defeitoSelecionado) {
this.defeitoSelecionado = defeitoSelecionado;
}
public void setProcesso(Processo processo) {
this.processo = processo;
}
public Cliente getClienteSelecionado() {
return clienteSelecionado;
}
public void setClienteSelecionado(Cliente clienteSelecionado) {
this.clienteSelecionado = clienteSelecionado;
}
public boolean isSkip() {
return skip;
}
public void setSkip(boolean skip) {
this.skip = skip;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public Modelo getModeloSelecionado() {
return modeloSelecionado;
}
public void setModeloSelecionado(Modelo modeloSelecionado) {
this.modeloSelecionado = modeloSelecionado;
}
public Marca getMarcaSelecionada() {
return marcaSelecionada;
}
public void setMarcaSelecionada(Marca marcaSelecionada) {
this.marcaSelecionada = marcaSelecionada;
}
public Produto getProdutoSelecionado() {
return produtoSelecionado;
}
public void setProdutoSelecionado(Produto produtoSelecionado) {
this.produtoSelecionado = produtoSelecionado;
}
public static Logger getLogger() {
return logger;
}
public static void setLogger(Logger logger) {
ProcessoBean.logger = logger;
}
public List<Object> getlistaMarca() {
return listaMarca;
}
public void setListaMarca(List<Object> listaMarca) {
this.listaMarca = listaMarca;
}
public List<Produto> getListaProduto() {
return listaProduto;
}
public void setListaProduto(List<Produto> listaProduto) {
this.listaProduto = listaProduto;
}
public List<Modelo> getSugestoes() {
return sugestoes;
}
public void setSugestoes(List<Modelo> sugestoes) {
this.sugestoes = sugestoes;
}
}
JSF
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title>Novo Processo</title>
</h:head>
<h:body>
<h:form id="formProcesso">
<p:growl id="growl" sticky="true" showDetail="true"/>
<p:wizard widgetVar="wiz"
flowListener="#{processobean.onFlowProcess}">
<p:tab id="notaFiscal" title="NotaFiscal">
<p:panel header="Dados Nota Fiscal">
<h:messages errorClass="error"/>
<h:panelGrid columns="2" columnClasses="label, value" styleClass="grid">
<h:outputText value="Data: " />
<h:outputText value="#{processobean.processo.dataCadastro}" />
<h:outputText value="Cliente: " />
<h:selectOneMenu id="cliente" value="#{processobean.clienteSelecionado}"
converter="converterCliente" items="#{processobean.listaCliente}">
<f:selectItems value="#{processobean.listaCliente}" var="cliente"
itemLabel="#{cliente.cliente}" itemValue="#{cliente}" />
</h:selectOneMenu>
<h:outputText value="NUM.NF" />
<h:inputText value="#{processobean.processo.numeroNotaFiscal}" />
<h:outputText value="CFOP correto" />
<h:selectOneMenu id="cfop" value="#{processobean.processo.cfop}">
<f:selectItem itemLabel="SIM" itemValue="SIM"/>
<f:selectItem itemLabel="NÃO" itemValue="NÃO"/>
</h:selectOneMenu>
<h:outputText value="IPI destacado" />
<h:selectOneMenu id="ipi" value="#{processobean.processo.ipi}">
<f:selectItem itemLabel="SIM" itemValue="SIM"/>
<f:selectItem itemLabel="NÃO" itemValue="NÃO"/>
</h:selectOneMenu>
<h:outputText value="ICMS destacado" />
<h:selectOneMenu id="icms" value="#{processobean.processo.icms}">
<f:selectItem itemLabel="SIM" itemValue="SIM"/>
<f:selectItem itemLabel="NÃO" itemValue="NÃO"/>
</h:selectOneMenu>
<h:outputText value="Descrição da nota correta" />
<h:selectOneMenu id="descricaoNota" value="#{processobean.processo.descricaoNota}">
<f:selectItem itemLabel="SIM" itemValue="SIM"/>
<f:selectItem itemLabel="NÃO" itemValue="NÃO"/>
</h:selectOneMenu>
<h:outputText value="Descrição da nota correta" />
<h:inputTextarea value="#{processobean.processo.descricaoNota}"/>
</h:panelGrid>
</p:panel>
</p:tab>
<p:tab id="defeito" title="Defeito">
<p:panel header="Detalhes Defeito">
<h:messages errorClass="error"/>
<h:panelGrid columns="2" columnClasses="label, value" styleClass="grid">
<h:outputText value="Marca: " />
<h:selectOneMenu id="marca" value="#{processobean.marcaSelecionada}"
converter="converterMarcaProcesso" items="#{processobean.listaMarca}">
<f:selectItems value="#{processobean.listaMarca}" var="marca"
itemValue="#{marca}" itemLabel="#{marca.marca}"/>
<f:ajax render="produto" event="valueChange" listener="#{processobean.produtosMarca}"/>
</h:selectOneMenu>
<h:outputText value="Produto: " />
<h:selectOneMenu id="produto" value="#{processobean.produtoSelecionado}"
converter="converterProdutoProcesso" items="#{processobean.listaProduto}">
<f:selectItems value="#{processobean.listaProduto}" var="produto"
itemValue="#{produto}" itemLabel="#{produto.produto}"/>
<f:ajax render="modelo" event="valueChange" listener="#{processobean.modeloProduto}"/>
<f:ajax render="defeitoFild" event="valueChange" listener="#{processobean.defeitoProduto}"/>
</h:selectOneMenu>
<h:outputText value="Modelo: " />
<p:autoComplete value="#{processobean.modeloSelecionado}" completeMethod="#{processobean.teste}" var="modelo" itemLabel="#{modelo.modelo}"
itemValue="#{modelo}" converter="converterModeloProcesso" id="modelo" forceSelection="true"/>
<h:outputText value="Defeito: " />
<h:selectOneMenu id="defeitoFild" value="#{processobean.defeitoSelecionado}"
converter="converterDefeito">
<f:selectItems value="#{processobean.defeitoProduto()}" var="defeito"
itemValue="#{defeito}" itemLabel="#{defeito.defeito}"/>
</h:selectOneMenu>
<h:outputText value="Posição: " />
<h:inputTextarea value="#{processobean.processo.descricaoDefeito}"/>
</h:panelGrid>
</p:panel>
</p:tab>
<p:tab id="confirmacao" title="Confirmação">
<p:panel header="Confirmação dos Dados">
<h:messages errorClass="error"/>
<h:panelGrid columns="2" columnClasses="label, value" styleClass="grid">
<h:outputText value="Os seguintes produtos foram inseridos para o processo de troca. " />
<h:outputLabel value="#{processobean.modeloSelecionado.modelo}" />
<h:outputText value="Data: " />
<h:outputLabel value="#{processobean.processo.dataCadastro}" />
<h:outputText value="Cliente: " />
<h:outputLabel value="#{processobean.clienteSelecionado.cliente}" />
<h:outputText value="NUM.NF: " />
<h:outputLabel value="#{processobean.processo.numeroNotaFiscal}" />
<h:outputText value="Processo: " />
<h:outputLabel value="#{processobean.processo.idProcesso}" />
</h:panelGrid>
</p:panel>
</p:tab>
</p:wizard>
</h:form>
</h:body>
</html>
Converter
package implementacoes;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import dao.ModeloDao;
import entidade.Modelo;
@FacesConverter(value="converterModeloProcesso")
public class ConverterModeloProcesso implements Converter {
@Override
public Object getAsObject(FacesContext arg0, UIComponent arg1, String arg2) {
ModeloDao dao = new ModeloDao();
Modelo modelo = dao.findModeloByNome(arg2);
return modelo;
}
@Override
public String getAsString(FacesContext arg0, UIComponent arg1, Object arg2) {
Modelo modelo = new Modelo();
modelo = (Modelo) arg2;
return modelo.getModelo();
}
}
alguem me da uma luz ae?