0
Ich versuche, den Wert eines SelectOneMenu
programmgesteuert festzulegen, aber der Wert wird nicht festgelegt.jsf selectonemenu dynamisch setvalue
versucht, die Lösung viel gesucht, aber keine befriedigende Antwort finden konnte:
Hier ist der Code. So erstellen Sie die 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);
Und ich versuche, den Wert mit diesem Code zu setzen:
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot rootView = context.getViewRoot();
SelectOneMenu yesNoDropdown = (SelectOneMenu) rootView.findComponent("formId:yes-no");
yesNoDropdown.setValue("no");
RequestContext.getCurrentInstance().update("formId");
nicht sicher, was falsch ist. Jede Hilfe wird geschätzt.
Verwenden Sie einfach XHTML anstelle von Java. Es ist eine natürlichere Sprache, den Komponentenbaum anzugeben. – BalusC
Ich habe es jetzt gerade gelöst: done this: yesNoDropdown.setSubmittedValue ("no"); – GSS
Danke @BalusC für Ihren Vorschlag. Ich hätte dies in xhtml getan (das ist einfacher und hübscher), aber meine Anforderung erlaubt mir das nicht. – GSS