Obviously, this does not work, because getters and setters do not know which index to use when assigning values.
This is not true. Your problem is probably caused by the fact that you did not initialize the array yourself. JSF / EL will not do this for you (as, for example, with any other "nested object"). It will set the array value only at the given index.
eg.
private int[] positions; @PostConstruct public void init() { positions = new int[3];
with
<h:selectOneMenu value="#{bean.positions[0]}" ... /> <h:selectOneMenu value="#{bean.positions[1]}" ... /> <h:selectOneMenu value="#{bean.positions[2]}" ... />
source share