users@woodstock.java.net

Tables and non-POJO lists

From: Brawn Do <brawndoe_at_gmail.com>
Date: Mon, 28 Apr 2008 22:49:12 -0500

Hi,

I've got a handle on dealing with POJO beans within my tables, but am
unclear how to handle "simple" lists of primitive elements like strings. I
must be missing the boat on this. With the code below I'm attempting to
simply display the name "foo", but instead end up with a
com.sun.webui.jsf.faces.DataProviderELResolver$ValueData toString()'d Can
anyone lend a hand (code below)? Similar code works fine with POJO lists;
e.g., where the name is a getter on a bean #{
mybeanwithanamegetter.value.name}

Thanks!

Table table = new Table();
table.setId("tbl");
TableRowGroup rowGroup = new TableRowGroup();
rowGroup.setId("rowGroup");
rowGroup.setSourceVar("name");
List<String> names = new LinkedList<String>();
names.add("foo");
ListDataProvider provider = new ListDataProvider (names);
rowGroup.setSourceData(provider);
TableColumn column = new TableColumn();
column.setId("col");
column.setHeaderText("Value");
StaticText nameText = new StaticText();
nameText.setId("nameText");
FacesContext context = FacesContext.getCurrentInstance();
nameText.setValueExpression("value",

context.getApplication().getExpressionFactory().createValueExpression(context.getELContext(),
"#{name.value}",String.class)

column.getChildren().add(nameText);
rowGroup.getChildren().add(column);
table.getChildren().add(rowGroup);