如何从支持 bean 添加到 BootsFaces b:selectOneMenu 组件中的不同值

How can I add to different values in BootsFaces b:selectOneMenu component from backing bean

你好,我有一个来自 JSF Bootsfaces 的组件 selectOneMenu,我想用支持 bean 的值填充它。

这是我试过但没有用的方法:

这是 xhtml:

<b:selectOneMenu ajax="true" process="@this" label="Selecteaza CNP sau CUI">         
  <f:selectItems value="#{cereri.cnpcui}" var="beer"
                 itemValue="1" itemLabel="#{cereri.cnpcui}" />
</b:selectOneMenu>

这是 java bean:

@ManagedBean(name = "cereri", eager = true)
@RequestScoped
public class Cereri {

private List<String> cnpcui;

public Cereri() {
    cnpcui = new ArrayList<>();
    cnpcui.add("CUI");
    cnpcui.add("CNP");
}

public List<String> getCnpcui() {

    return cnpcui;
}

public void setCnpcui(List<String> cnpcui) {
    this.cnpcui = cnpcui;
}

下拉列表将每行的两个值显示为一个数组:[CNP,CUI] 两行。 我想要第一行的一个值和第二行的第二个值。

谢谢

您没有正确使用该组件。当您引用 itemLabel="#{cereri.cnpcui}" 时,您是在告诉组件输出整个数组。

要得到你想要的行为,你需要做这样的事情;

<b:selectOneMenu ajax="true" process="@this" label="Selecteaza CNP sau CUI">         
        <f:selectItems value="#{cereri.cnpcui}" var="beer" 
                       itemValue="#{beer}" itemLabel="#{beer}" />
</b:selectOneMenu>

value 属性(在本例中为字符串)引用的列​​表中的每个项目都放置在局部范围变量 beer 中。因此,在表达式中引用 #{beer} 将指示组件输出实际的字符串。