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

Reply via email to