If someone works with selectOneMenu and dynamically populates the elements: When creating a SelectItem, if you provide some value (the first parameter) as follows:
new SelectItem("somevalue", "someLabel", "someDescription", false, false);
This translates to HTML:
<option value="somevalue">someLabel</option>
If you do not specify the following value:
new SelectItem("", "someLabel", "someDescription", false, false);
it translates as
<option value="" selected="selected">someLabel</option>
Therefore, if you want the item to be the default item when the page loads (for example, "Select one of them"), do not specify a value. If you create more than one element without a value, any of them is selected by default when the page loads (probably, preference is based on increasing alphabetical order).
Divije narasimhachar
source share