0
Я пытаюсь установить значение SelectOneMenu
программно, но значение не будет установлено.jsf selectonemenu динамически setvalue
Пробовал поиск решения много, но не смог найти удовлетворительный ответ:
Вот код. Для создания SelectOneMenu
:
SelectOneMenu yesNoDropdown = new SelectOneMenu();
List<SelectItem> items = new ArrayList<SelectItem>();
items.add(new SelectItem("", ""));
items.add(new SelectItem("yes", "Yes"));
items.add(new SelectItem("no", "No"));
UISelectItems selectOptions = new UISelectItems();
selectOptions.setValue(items);
yesNoDropdown.getChildren().add(selectOptions);
yesNoDropdown.setId("yes-no");
yesNoDropdown.setRequired(true);
И я пытаюсь установить значение, используя этот код:
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot rootView = context.getViewRoot();
SelectOneMenu yesNoDropdown = (SelectOneMenu) rootView.findComponent("formId:yes-no");
yesNoDropdown.setValue("no");
RequestContext.getCurrentInstance().update("formId");
Не уверен, что это неправильно. Любая помощь будет оценена.
Просто используйте XHTML вместо Java. Это более естественный язык для указания дерева компонентов. – BalusC
Я решил это сейчас: сделал это: yesNoDropdown.setSubmittedValue ("no"); – GSS
Спасибо @BalusC за ваше предложение. Я бы сделал это в xhtml (это проще и красивее), но мое требование не позволяет мне это делать. – GSS