我有一个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
答案 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>
我跳了它会对你有用