从bean中的视图中获取f:selectItems的值

时间:2014-07-21 05:22:36

标签: jsf-2 primefaces selecteditem

我有一个selectedOneMenu我想把我的java代码中的值选中,以便用这个值做一些工作,所以这是我的xhtml:

<p:selectOneMenu  id="tbName" >
   <f:selectItem itemLabel="Select Table" itemValue=""/>
   <f:selectItems value="#{infoTable.nameTa}" />
</p:selectOneMenu>

对于java代码,我有这个:

public List<SelectItem> getNameTa() {
        List<SelectItem> subcat = new ArrayList<SelectItem>();
        try {
            ConnectionBase con = new ConnectionBase();
            TableInfo tt = new TableInfo();

            List<String> rs = tt.getTable(con, "%");
            Iterator i = rs.iterator();
            while (i.hasNext()) {
                subcat.add(new SelectItem(i.next()));
            }

        } catch (Exception e) {
            e.getStackTrace();
        }


        return subcat;

    }

这个方法在数据库中得到了我的表名列表,所以当我选择项目时我想得到值来这里:

public List<SelectItem> getFkName2() {
        List<SelectItem> subcat = new ArrayList<SelectItem>();
         nameT =generatedName(); //from the selecteditem
         System.out.println("name of table choice"+nameT);

        try {

            TableInfo tt = new TableInfo();

            List<String> rs = tt.getNameCtable(con, nameT);


            Iterator i = rs.iterator();
            while (i.hasNext()) {
                subcat.add(new SelectItem(i.next()));
            }

        } catch (Exception ex) {
        }

        return subcat;
    }

用它来制作其他selectOneMenu,以获取所选表格的列。那我该怎么做呢和thx

1 个答案:

答案 0 :(得分:1)

尝试像这样添加一个String值的getter / setter&#34; slectedName&#34;而对于xhtml这个:

 <p:selectOneMenu  id="cat">
                                        <f:selectItem itemLabel="Select Column" itemValue="" />
                                        <f:selectItems value="#{infoTable.getFkName2()}" />

                                    </p:selectOneMenu>  
               <p:outputLabel value="Table :" />

               <p:selectOneMenu  id="tbName" value="#{infoTable.slectedName}"  >
                                        <f:selectItem itemLabel="Select Table" itemValue="" />
                                        <f:selectItems  value="#{infoTable.nameTa}"  />
                                        <p:ajax update="cat"></p:ajax>
                                    </p:selectOneMenu>  

我跳了它会对你有用