There is a problem with p:selectOneMenu
selection when adding a f:selectItem
.
View:
I could reproduce your problem. I looked in the PrimeFaces source code. It's a bug in PrimeFaces SelectOneMenuRenderer
which exposes only when an item with noSelectionOption="true"
is been used. The renderer won't generate the HTML element of the backing
element for that, but it will generate the
of the visual
list for that. In other words, the contains in your case 4 items and the
5 items. The is selected by JavaScript based on the index of the
, exactly as you suspected. That explains your problem.
Your best bet is to report it as a bug to PrimeFaces guys. The renderer should also generate the for that, or the JavaScript should select the option based on value instead of on index.
In the meanwhile, replacing the noSelectionOption="true"
by itemValue="#{null}"
, or also itemValue=""
when JSF is configured to interpret empty string submitted values as null
, should solve your problem.