IllegalArgument get RowData and rowIndex -1
devilqp Apr 18, 2011 10:01 AMHi guys,
I have a problem with the tag rich:dataTable where in it has value as a column that has an EL expression on my pageCode with a methodthat calls the method 'getRowData()' of 'HtmlDataTable'.
I have a list of 8 items, but in the method 'getQuotaCapitale ()' lifecycle enter 10 times by having a
'rowIndex = -1' and therefore an IllegalArgumentException because the row is not available.
Why do this?
I printed in console the variable rowIndex and rights cycled from 0 to 7, but falls in method 2 more times to no avail.
Please help me, I don't know what else to do.
Thanks.
P.S: i used richfaces 3.1.6 GA under webspheare application server 6.1 and jsf 1.1
The code below will explain the problem better:
test.xhtml
<!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:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:rich="http://richfaces.org/rich">
<h:form>
<rich:dataTable id="dataTable" value="#{test.rateList}" var="rataVar" >
<rich:column>
<h:outputText value="#{test.quotaCapitale}" />
</rich:column>
</rich:dataTable>
</h:form>
</html>
here Test.java (scope request)
import org.richfaces.component.html.HtmlDataTable;
public class Test extends PageCodeBase {
private List<Long> rateList;
private BigDecimal quotaCapitale;
public List<Long> getRateList() {
if(rateList==null){
List<Long> longList = new ArrayList<Long>();
for (int i = 0; i < 8; i++) {
longList.add(new Long(i));
}
rateList = longList;
}
return rateList;
}
public Long getQuotaCapitale(){
HtmlDataTable dataTableRate = (HtmlDataTable)PageCodeBase.findComponentInRoot("dataTable");
Long rata = (Long)dataTableRate.getRowData();
return rata;
}
}