2017-01-06 49 views
0

我試圖以編程方式設置SelectOneMenu的值,但該值沒有設置。jsf selectonemenu動態設置值

試圖尋找解決方案很多,但一直沒找到滿意的答案:

這裏是代碼。要創建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"); 

謝謝!