jsfページでコンポーネント「SelectOneMenu」をテストしています。ManageBean (データベースからすべての動物を取得します) を使用して、このコンポーネントを動的に設定しています。
その「SelectOneMenu」(コンボボックス)のユーザーが選択したアイテムを表示できるかどうかを知りたいのですが、value="#{animalsManage.animalSelect}" で試していますが、ページの先頭でのみ呼び出されます。また、inputText を使用して、「SelectOneMenu」の選択された intem の値を確認しています。
私が間違っていることは何ですか?
JSF:
<body>
<ui:component>
<h:form>
<h:outputText value="Select one Mets File" />
<h:selectOneMenu id="combo" value="#{animalsManage.animalSelected}">
<f:selectItem itemLabel="Select..." noSelectionOption="true"/>
<f:selectItems value="#{animalsManage.allAnimals}" />
</h:selectOneMenu>
<h:inputText id="textbox" value="#{animalsManage.animalSelected }" />
</h:form>
</ui:component>
</body>
管理Bean:
@ManagedBean
@ViewScoped
public class AnimalsManage implements Serializable {
@EJB
private AnimalsFacadeREST animalsFacadeREST;
private String animalSelected;
private List< SelectItem> selectAnimals;
public List<SelectItem> getAllAnimals() {
List<Animals> al = animalsFacadeREST.findAll();
selectAnimals = new ArrayList< SelectItem>();
int i = 0;
for (Animals animal: al) {
selectAnimals.add(new SelectItem(i, animal.getName()));
i++;
}
return selectAnimals;
}
public String getAnimalSelected() {
return animalSelected;
}
public void setAnimalSelected(String animalSelected) {
this.animalSelected = animalSelected;
}
}