Причина, по которой он не работает, заключается в том, что вы не установили itemValue для выбранного элемента. Однако я никогда не использовал UISelectItem и вместо этого использовал SelectItem следующим образом:
List<SelectItem> selectItems = new ArrayList();
selectItems.add(new SelectItem('value',
'label'));
это то же самое, что сказать:
List<SelectItem> selectItems = new ArrayList();
SelectItem item = new SelectItem();
item.setItemLabel("label");
item.setItemValue("value");
Значение для selectItem определяется как itemValue, а не как значение btw, поэтому путем исправления код будет работать без каких-либо изменений, кроме этого Любая причина, по которой вы используете UISelectItem, а не только SelectItem, кстати?