You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "Walter Oliver (BR/ICI3)" <ol...@boschrexroth.de> on 2007/05/23 11:43:11 UTC

selectItems and converter

Hi all,

just a question about using SelectItems and converter. 


I have the following code:

<h:selectOneMenu id="levelFilter" value="#{commands.levelFilter}"
valueChangeListener="#{commands.filter}" onchange="submit()"
converter="levelConverter">
	<f:selectItems value="#{commands.levelList}" />
</h:selectOneMenu>


and in my Bean:

public List<SelectItem> getLevelList() {
    	
	List<SelectItem> levelList = new LinkedList();
		
	for(int i = 0; i <= level; i++) {
		levelList.add(new SelectItem(i));
	}
    	
	return levelList;
}


So far it looks good, but on client side i get:

<option value="Level 1" selected="selected">0</option>
<option value="Level 2" selected="selected">1</option>
....

Instead of expected

<option value="0" selected="selected">Level 1</option>
<option value="1">Level 2</option>
....



Any idea to get the options name and value get turned around?

Regards Oliver

Re: selectItems and converter

Posted by Svilen Ivanov <sv...@gmail.com>.
Use the SelectItem constructor for label *and* value:
SelectItem(java.lang.Object value, java.lang.String label)

This way you can specify both value of the option tag and the label
displayed to in the dropdown.



2007/5/23, Walter Oliver (BR/ICI3) <ol...@boschrexroth.de>:
> Hi all,
>
> just a question about using SelectItems and converter.
>
>
> I have the following code:
>
> <h:selectOneMenu id="levelFilter" value="#{commands.levelFilter}"
> valueChangeListener="#{commands.filter}" onchange="submit()"
> converter="levelConverter">
>         <f:selectItems value="#{commands.levelList}" />
> </h:selectOneMenu>
>
>
> and in my Bean:
>
> public List<SelectItem> getLevelList() {
>
>         List<SelectItem> levelList = new LinkedList();
>
>         for(int i = 0; i <= level; i++) {
>                 levelList.add(new SelectItem(i));
>         }
>
>         return levelList;
> }
>
>
> So far it looks good, but on client side i get:
>
> <option value="Level 1" selected="selected">0</option>
> <option value="Level 2" selected="selected">1</option>
> ....
>
> Instead of expected
>
> <option value="0" selected="selected">Level 1</option>
> <option value="1">Level 2</option>
> ....
>
>
>
> Any idea to get the options name and value get turned around?
>
> Regards Oliver
>