2017-01-06 12 views
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"); 

Не уверен, что это неправильно. Любая помощь будет оценена.

+0

Просто используйте XHTML вместо Java. Это более естественный язык для указания дерева компонентов. – BalusC

+0

Я решил это сейчас: сделал это: yesNoDropdown.setSubmittedValue ("no"); – GSS

+0

Спасибо @BalusC за ваше предложение. Я бы сделал это в xhtml (это проще и красивее), но мое требование не позволяет мне это делать. – GSS

ответ

0

Я решил только сейчас: это сделал:

yesNoDropdown.setSubmittedValue("no"); 

Спасибо!