As with every component UIInput, you just need to bind the attribute valueto the bean swap property. So this way:
<h:form>
<h:selectManyListbox value="#{bean.selectedItems}">
<f:selectItems value="#{bean.selectItems}" />
</h:selectManyListbox>
<h:commandButton value="submit" action="#{bean.submit}" />
</h:form>
with the following in class Bean:
private List<String> selectedItems;
private List<SelectItem> selectItems;
public Bean() {
selectItems = new ArrayList<SelectItem>();
selectItems.add(new SelectItem("value1", "label1"));
selectItems.add(new SelectItem("value2", "label2"));
selectItems.add(new SelectItem("value3", "label3"));
}
public void submit() {
for (String selectedItem : selectedItems) {
System.out.println("Selected item: " + selectedItem);
}
}
SelectItem (.. String, Number Boolean, EL ), Converter . .