ola pessoal
eu tenho um datatable, onde tenho que passar um parametro pra ele da pagina, porem, nem tentei fazer a passagem de parametro e ele ja me retorna erro.
minha pagina .jsp
<h:dataTable value="#{pessoaFisicaMB.listaPorParametroTeste}" var="pessoa" border="0" rowClasses="TbltrTrue,TbltrFalse" width="750">
<h:column>
<f:facet name="header">
<h:outputText value="Código" />
</f:facet>
<h:outputText value="#{pessoa.id}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Nome" />
</f:facet>
<h:outputText value="#{pessoa.nome}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="CPF/CNPJ" />
</f:facet>
<h:outputText value="#{pessoa.cpf}"/>
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Status" />
</f:facet>
<h:outputText value="#{pessoa.status}"/>
</h:column>
</h:dataTable>
meu ManagedBean
public List getListaPorParametroTeste() throws Exception{
List list = new ArrayList();
list.addAll(pessoaFisicaDB.getListaPorParametro("ab"));
return list;
}
metodo de busca no banco de dados
public List getListaPorParametro(String parametro) throws Exception{
Connection conn = null;
ResultSet rs = null;
String sql = BUSCA_POR_PARAMETRO;
List list = new ArrayList();
try {
conn = GerenciadorConexao.getConexao();
CallableStatement clblStmt = conn.prepareCall(sql);
clblStmt.setInt(1,1);
clblStmt.setString(2,"");
clblStmt.setString(3,"");
clblStmt.setInt(4,1);
rs = clblStmt.executeQuery();
while (rs.next()) {
int id = rs.getInt(1);
String nome = rs.getString(2);
String documento = rs.getString(3);
String status = rs.getString(4);
PessoaFisica pessoaFisica = new PessoaFisica();
pessoaFisica.setNome(nome);
pessoaFisica.setId(id);
pessoaFisica.setCpf(documento);
list.add(pessoaFisica);
}
} catch (Exception e) {
throw new Exception("erro no update",e);
}
return list;
}
classe DAO
package br.com.krusst.precadastro.dao;
import java.util.List;
import javax.faces.event.ActionEvent;
import br.com.krusst.precadastro.beans.PessoaFisica;
import br.com.krusst.precadastro.util.KrusstException;
public interface PessoaFisicaDAO{
public int insert() throws KrusstException;
public int update();
public List getListaPorParametro(String parametro) throws Exception;
}
obs.: removi algumas classes para ficar mais simples
bem, qdo uso parametros, me gera erro
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error getting property 'listaPorParametro' from bean of type br.com.krusst.precadastro.dao.PessoaFisicaDB
javax.faces.webapp.FacesServlet.service(FacesServlet.java:225)
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:96)
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:220)
root cause
javax.faces.el.PropertyNotFoundException: Error getting property 'listaPorParametro' from bean of type br.com.krusst.precadastro.dao.PessoaFisicaDB
com.sun.faces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:127)
com.sun.faces.el.impl.ArraySuffix.evaluate(ArraySuffix.java:187)
com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:171)
com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:160)
com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143)
javax.faces.component.UIData.getValue(UIData.java:547)
javax.faces.component.UIData.getDataModel(UIData.java:876)
javax.faces.component.UIData.setRowIndex(UIData.java:399)
javax.faces.component.UIData.iterate(UIData.java:918)
javax.faces.component.UIData.processDecodes(UIData.java:757)
javax.faces.component.UIForm.processDecodes(UIForm.java:164)
javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:900)
javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:326)
org.ajax4jsf.framework.ajax.AjaxViewRoot.access$001(AjaxViewRoot.java:53)
org.ajax4jsf.framework.ajax.AjaxViewRoot$1.invokeRoot(AjaxViewRoot.java:254)
org.ajax4jsf.framework.ajax.JsfOneOneInvoker.invokeOnRegionOrRoot(JsfOneOneInvoker.java:54)
org.ajax4jsf.framework.ajax.AjaxContext.invokeOnRegionOrRoot(AjaxContext.java:176)
org.ajax4jsf.framework.ajax.AjaxViewRoot.processDecodes(AjaxViewRoot.java:267)
com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:99)
com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:245)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:110)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:213)
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:96)
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:220)
se removo o parametro ele funciona “perfeitamente”
public List getListaPorParametro() throws Exception{...}
.
.
.
public List getListaPorParametroTeste() throws Exception{
List list = new ArrayList();
list.addAll(pessoaFisicaDB.getListaPorParametro());
return list;
}
agora, nao entendo, ate pq, da forma como eu testei, o parametro nao faz nada no metodo
por que ocorre isso?
alguem pode me ajudar?
abs
T+