SuggestionBox
04/10/2011
0
Fabiano Barros
Posts
04/10/2011
Fabiano Barros
<a4j:region immediate=true renderRegionOnly=true>
<td><h:outputText value=Nome: styleClass=t1/></td>
<td><h:inputText size=50 value=#{cadclienteprocessomb.participante} id=text styleClass=campo1/></td>
<td><rich:suggestionbox id=suggestionBoxId for=text
suggestionAction=#{cadclienteprocessomb.autocomplete}
fetchValue=#{result.nome} width=500 height=100 var=result>
<h:column>
<h:outputText value=#{result.nome}/>
</h:column>
<a4j:support event=onselect> <f:setPropertyActionListener value=#target=#{cadclienteprocessomb.selecao}/>
</a4j:support>
</rich:suggestionbox></td>
</a4j:region>
04/10/2011
Fabiano Barros
04/10/2011 11:43:02 com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
WARNING: javax.el.ELException: /pages/cadastro/cadclienteprocesso.xhtml @86,80 suggestionAction=#{cadclienteprocessomb.autocomplete}: java.lang.NullPointerException
javax.faces.FacesException: javax.el.ELException: /pages/cadastro/cadclienteprocesso.xhtml @86,80 suggestionAction=#{cadclienteprocessomb.autocomplete}: java.lang.NullPointerException
at javax.faces.component.UIData.invokeOnComponent(UIData.java:807)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:675)
Quando eu retiro o setPropertyActionListener funciona normalmente.
Atte.
Fabiano do Souto Barros.
04/10/2011
Davi Costa
att Davi
04/10/2011
Fabiano Barros
não consegui descobrir o que esta errado no meu bean.
Atte.
Fabiano do Souto Barros.
04/10/2011
Fabiano Barros
Atte.
Fabiano do Souto Barros.
public class CadClienteProcessoMB implements Serializable{ /** * */ private static final long serialVersionUID = -3754428558909133377L; private ArrayList<AutorProcesso> clienteprocessos = null; private AutorProcesso clienteprocesso=null; private int scrollerPage=1; private AutorProcesso currentItem; private Autor cliente=null; private int currentRow; private ArrayList<Autor> clientes; private ArrayList<Processo> processos = null; private Processo processo=null; private String numero=null; private String ro; private ClienteProcessoPK clienteprocessopk = null; private Processo filtroProcesso; private AutorProcesso filtroClienteProcesso; private String numeroCliente; private String numeroRo; private String tipo; private String Participante; private Autor selecao = null; public Autor getSelecao() { return selecao; } public void setSelecao(Autor selecao) { this.selecao = selecao; } public String getParticipante() { return Participante; } public void setParticipante(String participante) { Participante = participante; } public String getTipo() { return tipo; } public void setTipo(String tipo) { this.tipo = tipo; } private Map<String, Object> itensClientes = null; public Map<String, Object> getItensClientes(){ itensClientes = new LinkedHashMap<String, Object>(); //this.recuperarDepartamentos(); for (Autor cli : clientes) { itensClientes.put(cli.getNome(), cli.getId()); } return itensClientes; } public CadClienteProcessoMB(){ this.novo(); clienteprocesso = new AutorProcesso(); clienteprocessos = new ArrayList<AutorProcesso>(); clientes = new ArrayList<Autor>(); cliente = new Autor(); processos = new ArrayList<Processo>(); processo = new Processo(); filtroProcesso = new Processo(); clienteprocessopk = new ClienteProcessoPK(); filtroClienteProcesso = new AutorProcesso(); clienteprocesso.setAutor(cliente); clienteprocesso.setProcesso(processo); selecao = new Autor(); this.recuperarClientesCombo(); this.recuperarTodosClientes(); //this.recuperarTodosProcessos(); } public List<Autor> autocomplete(Object suggest){ String pref = (String)suggest; ArrayList<Autor> result = new ArrayList<Autor>(); Iterator<Autor> iterator = this.getClientes().iterator(); while (iterator.hasNext()){ Autor elem = ((Autor)iterator.next()); if(elem.getNome() != null && elem.getNome().toLowerCase().indexOf(pref.toLowerCase())==0 || .equals(pref)){ result.add(elem); } } return result; } public String getNumeroCliente() { return numeroCliente; } public void setNumeroCliente(String numeroCliente) { this.numeroCliente = numeroCliente; } public ArrayList<AutorProcesso> getClienteprocessos() { return clienteprocessos; } public void setClienteprocessos(ArrayList<AutorProcesso> clienteprocessos) { this.clienteprocessos = clienteprocessos; } public AutorProcesso getClienteprocesso() { int idRealProcesso; int idRealClienteProcesso; //this.novo(); //Capturando ID String idClienteProcesso = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(idclienteprocesso); String idProcesso = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(idProcesso); if (idProcesso==null){ idRealProcesso = 0; }else{ idRealProcesso = Integer.parseInt(idProcesso); processo = (Processo)BusinessFactory.getProcessoBus().recuperarPorId(idRealProcesso); clienteprocesso.setProcesso(processo); } if (idClienteProcesso==null){ idRealClienteProcesso = 0; }else{ idRealClienteProcesso = Integer.parseInt(idClienteProcesso); clienteprocesso = (AutorProcesso)BusinessFactory.getClienteProcessoBus().recuperarPorId(idRealClienteProcesso); } return clienteprocesso; }
04/10/2011
Luciano Martins
Atte.
Fabiano do Souto Barros.
public class CadClienteProcessoMB implements Serializable{ /** * */ private static final long serialVersionUID = -3754428558909133377L; private ArrayList<AutorProcesso> clienteprocessos = null; private AutorProcesso clienteprocesso=null; private int scrollerPage=1; private AutorProcesso currentItem; private Autor cliente=null; private int currentRow; private ArrayList<Autor> clientes; private ArrayList<Processo> processos = null; private Processo processo=null; private String numero=null; private String ro; private ClienteProcessoPK clienteprocessopk = null; private Processo filtroProcesso; private AutorProcesso filtroClienteProcesso; private String numeroCliente; private String numeroRo; private String tipo; private String Participante; private Autor selecao = null; public Autor getSelecao() { return selecao; } public void setSelecao(Autor selecao) { this.selecao = selecao; } public String getParticipante() { return Participante; } public void setParticipante(String participante) { Participante = participante; } public String getTipo() { return tipo; } public void setTipo(String tipo) { this.tipo = tipo; } private Map<String, Object> itensClientes = null; public Map<String, Object> getItensClientes(){ itensClientes = new LinkedHashMap<String, Object>(); //this.recuperarDepartamentos(); for (Autor cli : clientes) { itensClientes.put(cli.getNome(), cli.getId()); } return itensClientes; } public CadClienteProcessoMB(){ this.novo(); clienteprocesso = new AutorProcesso(); clienteprocessos = new ArrayList<AutorProcesso>(); clientes = new ArrayList<Autor>(); cliente = new Autor(); processos = new ArrayList<Processo>(); processo = new Processo(); filtroProcesso = new Processo(); clienteprocessopk = new ClienteProcessoPK(); filtroClienteProcesso = new AutorProcesso(); clienteprocesso.setAutor(cliente); clienteprocesso.setProcesso(processo); selecao = new Autor(); this.recuperarClientesCombo(); this.recuperarTodosClientes(); //this.recuperarTodosProcessos(); } public List<Autor> autocomplete(Object suggest){ String pref = (String)suggest; ArrayList<Autor> result = new ArrayList<Autor>(); Iterator<Autor> iterator = this.getClientes().iterator(); while (iterator.hasNext()){ Autor elem = ((Autor)iterator.next()); if(elem.getNome() != null && elem.getNome().toLowerCase().indexOf(pref.toLowerCase())==0 || .equals(pref)){ result.add(elem); } } return result; } public String getNumeroCliente() { return numeroCliente; } public void setNumeroCliente(String numeroCliente) { this.numeroCliente = numeroCliente; } public ArrayList<AutorProcesso> getClienteprocessos() { return clienteprocessos; } public void setClienteprocessos(ArrayList<AutorProcesso> clienteprocessos) { this.clienteprocessos = clienteprocessos; } public AutorProcesso getClienteprocesso() { int idRealProcesso; int idRealClienteProcesso; //this.novo(); //Capturando ID String idClienteProcesso = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(idclienteprocesso); String idProcesso = (String)FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get(idProcesso); if (idProcesso==null){ idRealProcesso = 0; }else{ idRealProcesso = Integer.parseInt(idProcesso); processo = (Processo)BusinessFactory.getProcessoBus().recuperarPorId(idRealProcesso); clienteprocesso.setProcesso(processo); } if (idClienteProcesso==null){ idRealClienteProcesso = 0; }else{ idRealClienteProcesso = Integer.parseInt(idClienteProcesso); clienteprocesso = (AutorProcesso)BusinessFactory.getClienteProcessoBus().recuperarPorId(idRealClienteProcesso); } return clienteprocesso; }
O q recebe esse SuggestionBox? Pq o nullpointer tá dando num método no seu ManagedBean, aliás seu ManagedBean está bem fora do q tem q ser pq ele mistura as propriedades duma classe com métodos de um managedBean...v ai.
05/10/2011
Fabiano Barros
<a4j:region immediate=true renderRegionOnly=true> <td><h:outputText value=Nome: styleClass=t1/></td> <td><h:inputText size=50 value=#{cadclienteprocessomb.participante} id=text styleClass=campo1/></td> <td><rich:suggestionbox id=suggestionBoxId for=text suggestionAction=#{cadclienteprocessomb.autocomplete} fetchValue=#{result.nome} width=500 height=100 var=result> <h:column> <h:outputText value=#{result.nome}/> </h:column> <a4j:support event=onselect> <f:setPropertyActionListener value=#target=#{cadclienteprocessomb.selecao}/> </a4j:support> </rich:suggestionbox></td> </a4j:region>
05/10/2011
Davi Costa
att Davi
06/10/2011
Fabiano Barros
E é lá que está dando nullpointer, que tal vc debugar e descobrir o que está vindo nulo.
att Davi
Fui debugando e não encontrei erro no autocomplete do suggestionbox. O que acontece é quando eu passo por parametro o identificador ele dá o erro. O por quê está acontecendo isto eu não estou encontrando. Se puderem me dar uma dica!
Atte.
Fabiano do Souto Barros.
21/10/2011
Dyego Carmo
23/10/2011
Fabiano Barros
Dyego eu posso utilizar o Richfaces e o primefaces no mesmo projeto?
Desde já agradeço.
Fabiano do Souto Barros.
25/10/2011
Dyego Carmo
sao apis bem heterogenias :)
Valeu !
Clique aqui para fazer login e interagir na Comunidade :)