当我使用f:selectItems的显示在地图的项目,我不能显示的地图项的值,只有密钥。 F:selectItems的完全不使用itemLabel。 当我使用一个列表,而不是工作的事情。
下面确实利用itemLabel的显示列表中的一个项目,“说明”:
<h:selectOneMenu>
<f:selectItems value="#{testBB.testList}" var="s"
itemLabel="TEST #{s.description}" itemValue="#{TEST s.name}" />
</h:
selectOneMenu>
下面尝试在地图中显示项目的价值无法正常工作。 它显示该项目的关键,但没有使用itemLabel属性,如可以由缺乏“TEST”文本的输出可以看出端倪。
<rich:select>
<f:selectItems value="#{testBB.testMap}" var="s"
itemLabel="TEST #{s.value}" itemValue="TEST #{s.key}" />
</rich:select>
使用简单支持bean如下:
public class TestBB {
private Map<String, String> testMap;
private List<TestItem> testList;
public TestBB() {
testMap = new HashMap<String, String>();
testMap.put("1_key", "Item One");
testMap.put("2_key", "Item Two");
testMap.put("3_key", "Item Three");
testList = new ArrayList<TestItem>();
testList.add( new TestItem("name_1", "description_1") );
testList.add( new TestItem("name_2", "description_2") );
testList.add( new TestItem("name_3", "description_3") );
}
public Map<String, String> getTestMap() {
return testMap;
}
public List<TestItem> getTestList() {
return testList;
}
}
那么,如何使这项工作任何想法,就是如何有效地使用同一个selectItems的地图?