gpt4 book ai didi

xpages - 使用托管 bean 填充组合框的 selectItems(标签、值)

转载 作者:行者123 更新时间:2023-12-02 10:36:21 25 4
gpt4 key购买 nike

我的页面中有一个组合,我想用配置中的一些关键字填充该组合。我想使用托管 bean 来完成它。

假设我有一个名为 Config 的 bean,其中有一个列表类别字段。 ..

public class Configuration implements Serializable {
private static final long serialVersionUID = 1L;
private List<String> categories;

public List<String> getCategories() {
if (categories == null)
categories = getCats();

return categories;
}

//... etc.
}

当我将此字段用于我的组合时,效果很好......

<xp:comboBox>
<xp:selectItems>
<xp:this.value><![CDATA[#{config.categories}]]></xp:this.value>
</xp:selectItems>
</xp:comboBox>

但是,这只是一个标签列表。我也需要值(value)观。如何使用两个字符串(标签和值)填充组合的 selectItems?

编辑:

我尝试创建一个带有标签和值字段的对象组合,并在组合框中使用重复。

<xp:comboBox>
<xp:repeat id="repeat1" value="#{config.combo}" var="c" rows="30">
<xp:selectItem itemLabel="#{c.label}" itemValue="#{c.value}" />
</xp:repeat>
</xp:comboBox>

仍然无法工作...:-(

最佳答案

而不是返回 List<String>你的函数应该返回 List<javax.faces.model.SelectItem> 。这是一个示例:

public static List<SelectItem> getComboboxOptions() {

List<SelectItem> options = new ArrayList<SelectItem>();

SelectItem option = new SelectItem();
option.setLabel("Here's a label");
option.setValue("Here's a value");

options.add(option);

return options;
}

使用此方法的优点(除了不必使用那些非概念性的东西:-)是您还可以 SelectItemGroup类对选项进行分组:

public static List<SelectItem> getGroupedComboboxOptions() {

List<SelectItem> groupedOptions = new ArrayList<SelectItem>();

SelectItemGroup group = new SelectItemGroup("A group of options");

SelectItem[] options = new SelectItem[2];

options[0] = new SelectItem("here's a value", "here's a label");
options[1] = new SelectItem("here's a value", "here's a label");

group.setSelectItems(options);

groupedOptions.add(group);

return groupedOptions;
}

关于xpages - 使用托管 bean 填充组合框的 selectItems(标签、值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21532641/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com