Your code is not ok. You are binding the faces components to wrong
types: h:selectManyListbox cannot be bound to String[] and
f:selectItems cannot be bound to an instance of UISelectMany....
The best pattern here is to pass an Array/List of SelectItem objects
to the value of your f:selectItems component, like this:
<h:selectManyListbox value="#{fileManagementBean.dataFile}">
<f:selectItem value="#{fileManagementBean.listOfSelectItems}/>
</h:selectManyListbox>
And also note that to have some values selected when the page is
loaded you have to use the @value attribute.
Regards,
Bruno
2005/10/11, Caroline Jen <[EMAIL PROTECTED]>:
> 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
>