I used the UISelectItem to set its value to the
SelectItem (I have many SelectItme). Then, I added
each UISelectItem to the UISelectMany . When I
displayed a list box, I got the runtime error:
"IllegalArgumentException: argument type mismatch"
In my JSP, I create a list box for multiple
selections:
[code]
<h:selectManyListbox
binding="#{fileManagementBean.dataFile}" size="7" >
<f:selectItems
value="#{fileManagementBean.dataFileItems}"/>
</h:selectManyListbox>
[/code]
Therefore, the "dataFileItems" is of type UISelectMany
that has elements of type UISelectItem. The multiple
selections that users make will be in a String array:
String[] dataFile. Did I mess up anything here? My
backing bean code is like:
[code]
.....
.....
public class FileManagementBean
{
private String[] dataFile;
private UISelectMany dataFileItems;
public FileManagementBean()
{
dataFileItems = new UISelectMany();
UISelectItem item = new UISelectItem();
SelectItem file = new SelectItem( "file1", "Data
File No. 1");
item.setValue( file );
dataFileItems.getChildren().add( item );
file = new SelectItem( "file2", "Data File No. 2");
item.setValue( file );
dataFileItems.getChildren().add( item );
.....
.....
}
public String[] getDataFile() {
return dataFile;
}
public void setDataFile( String[] dataFile ) {
this.dataFile = dataFile;
}
public UISelectMany getDataFileItems() {
return dataFileItems;
}
}
[/code]
__________________________________
Yahoo! Mail - PC Magazine Editors' Choice 2005
http://mail.yahoo.com