我在SelectOneMenu中有一个List。 当用户选择此列表中的一个时,它会给我值,而不是它的标签。 我需要的是标签在屏幕上显示。有没有更简单的方法呢?
我现在正在做的事情是这样的一个foreach:
for(SelectItem si : listOfSomething) {
if (si.getValue().equals(myValue) {
theLabelIs = si.getLabel();
break;
}
}
也许我没有解释清楚,所以请告诉我,我会尝试更好地解释。
答案 0 :(得分:2)
使用Map
代替项目值为地图键,项目标签为地图值。
private Map<String, String> options;
public Bean() {
options = new HashMap<String, String>();
options.put("value1", "label1");
options.put("value2", "label2");
options.put("value3", "label3");
// ...
}
然后你可以按照以下方式在支持bean中获取它:
String label = options.get(selectedValue);
// ...
或甚至在以下视图中
You have selected <h:outputText value="#{bean.options[bean.selectedValue]}" />