Pessoal,
Não consigo fazer binding de um <h:dataTable>. O erro retornado é esse:
java.lang.IllegalArgumentException
javax.faces.model.ListDataModel.getRowData(ListDataModel.java:139)
javax.faces.component.UIData.getRowData(UIData.java:324)
br.com.sge.managedBeans.BaixaEstoqueBean.incluirProduto(BaixaEstoqueBean.java:31)
Segue trechos do xhtml e do managedBean.
BaixaEstoqueBean
private javax.faces.component.html.HtmlDataTable dataTableProdutosEstoque;
...
public String incluirProduto() {
Produto produto = (Produto) this.getDataTableProdutosEstoque.getRowData(); //linha 31
BaixaEstoque baixaEstoque = new BaixaEstoque();
baixaEstoque.setProdutoCodigo(produto);
baixaEstoque.setSolicitanteCodigo(login.getUsuario());
baixaEstoque.setDataSolicitacao(new Date());
System.out.println("Produto: " + produto.getDescricao());
return null;
}
xhtml
<h:dataTable value="#{baixaEstoqueBean.produtosEstoque}" var="produto"
rowClasses="linhaClara, linhaEscura" styleClass="dataTableProdutos"
binding="#{baixaEstoqueBean.dataTableProdutosEstoque}">
<h:column>
<f:facet name="header">
<h:outputText value="Produto" />
</f:facet>
<h:outputText value="#{produto.descricao}" />
</h:column>
<h:column>
<f:facet name="header">
<h:outputText value="Incluir" />
</f:facet>
<h:commandButton styleClass="panelBotaoAdicionar" value="Incluir"
action="#{baixaEstoqueBean.incluirProduto}" />
</h:column>
</h:dataTable>
Ao clicar no botão Incluir na página, deveria listar o produto selecionado no console, no entanto o erro citado acima ocorre.
Onde estou errando?
Estou usando Apache Tomcat/6.0.18 e Sun JSF (1.2_03-b05-FCS).