public class ItemBean { private HtmlOutputText selectedItemId; private List<Item> items; public class Item { Long id; String name; public Item(Long id, String name) { this.id = id; this.name = name; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public ItemBean() { items = new ArrayList<Item>(); items.add(new Item(1L, "Item 1")); items.add(new Item(2L, "Item 2")); items.add(new Item(3L, "Item 3")); } public List<Item> getItems() { return items; } public void setItems(List<Item> items) { this.items = items; } public void doSomething() { Object value = selectedItemId.getValue(); //here's the wrong value } public HtmlOutputText getSelectedItemId() { return selectedItemId; } public void setSelectedItemId(HtmlOutputText selectedItemId) { this.selectedItemId = selectedItemId; } }