【问题标题】:jsf selectonemenu dynamically setvaluejsf selectonemenu动态设置值
【发布时间】:2017-01-06 21:34:10
【问题描述】:

我正在尝试以编程方式设置 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");

不确定是什么问题。任何帮助将不胜感激。

【问题讨论】:

  • 只需使用 XHTML 而不是 Java。指定组件树是一种更自然的语言。
  • 我刚刚解决了:这样做了:yesNoDropdown.setSubmittedValue("no");
  • 感谢@BalusC 的建议。我会在 xhtml 中做到这一点(这更容易也更漂亮),但我的要求不允许我这样做。
  • 没有什么在 XHTML 中是不可能的,而只有在 Java 中是可能的。
  • @BalusC - 你是对的,我承认我懒得将java代码重写为xhtml。但我做到了(更简单、更清洁)。感谢您的建议。

标签: primefaces jsf-2 selectonemenu


【解决方案1】:

我刚刚解决了:这样做了:

yesNoDropdown.setSubmittedValue("no");

谢谢!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 1970-01-01
    • 2014-01-28
    • 1970-01-01
    • 2021-03-03
    • 2011-10-10
    • 1970-01-01
    相关资源
    最近更新 更多