Я тестирую компонент «SelectOneMenu» на странице jsf. Я заполняю этот компонент динамически, хотя мой ManageBean (который получит всех животных из базы данных).Получение выбранного значения SelectOneMenu
Я хотел бы знать, если можно увидеть выбранный пользователем элемент этого «SelectOneMenu» (combobox), я пытаюсь со значением = «# {animalsManage.animalSelect}», но он вызывается только в начале страницы. Кроме того, я использую inputText, чтобы увидеть значение выбранного набора «SelectOneMenu».
Что я делаю неправильно?
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>
ManageBean:
@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;
}
}
Вы можете просто добавить f: ajax внутри с событием как «изменить», а также предоставить атрибут render со значением «@form». Это может показать выбранное значение в текстовом поле. Что-то вроде этого ** **. Попробуй. –
Что такое '# {fileManage.fileName}'? Кстати, '" отображает выпадающий список, а не поле со списком. Получите ваши условия прямо. И последнее, но не менее важное: выполнение бизнес-логики в getter - это плохо. Для некоторых советов о том, как правильно использовать '', проверьте его страницу wiki (поместите мышь поверх тега '[selectonemenu]', который вы разместили на вопросе, пока не появится черный ящик, а затем нажмите на него ссылка * info *). –
BalusC
Спасибо, спасибо, это помогло. Кроме того, спасибо BalusC, я отредактировал текст, надеюсь, теперь все в порядке. – iGoDa