0

我需要从 JSF 中的 selectOneMenu 中获取我选择的值。我使用了一个 ArrayList,我在其中保存了数据。

<h:outputText value="Meslek : " />
    <h:selectOneMenu value="meslek">
        <f:selectItems id="meslek7" value="#{comyon.selectıtem}"/>
</h:selectOneMenu>

这是我的豆子:

@ManagedBean(name = "comyon")
@RequestScoped

public class ComponentYonetim {

private String ad,soyad,cinsiyet;
private String sonuc = "";
private ArrayList<SelectItem> selectıtem = new ArrayList<SelectItem>();
private String donenMeslek = "";

public ComponentYonetim() {
    selectıtem.add(new SelectItem("Asker"));
    selectıtem.add(new SelectItem("Mühendis"));
    selectıtem.add(new SelectItem("Doktor"));
    selectıtem.add(new SelectItem("Öğrenci"));
    selectıtem.add(new SelectItem("Serbest meslek"));
    selectıtem.add(new SelectItem("Polis"));

}

public void yazdir(){
    if(this.ad.isEmpty() || this.soyad.isEmpty()){
        sonuc+="Lütfen boşluk bırakmayınız!";
    }
}

//setters and getters...

}

它显示了 ArrayList 数据,但我无法从那里获得价值。如何使用 javaBean 从这个 selectOneMenu 中获取值?

4

2 回答 2

2

你应该阅读这些教程:

  1. Mkyoung selectOneMenu 教程
  2. Mkyong转换器教程

基本上你应该为 selectOneMenu 标签选择值容器。这意味着它应该看起来像:

<h:selectOneMenu value="#{comyon.selectedItem}">
   <f:selectItems id="meslek7" value="#{comyon.selectıtem}"/>
</h:selectOneMenu>

如果你需要传递一个对象而不是字符串,你应该使用转换器。查看顶部的链接。

于 2013-09-02T11:12:33.300 回答
1

尽管您在下拉列表中选择了什么,但该项目的值将是第一行

<h:selectOneMenu value="#{meslek}">

因此,让我们声明一个名为“meslek”的变量和 getter/setter 以使用该值。

private String meslek;
于 2017-02-15T03:44:17.620 回答