有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在列表中查找对象

我在SelectOne菜单中有一个列表。 当用户选择这个列表中的一个时,它给我的是值,而不是它的标签。 我需要的是在屏幕上显示它的标签。有更简单的方法吗

我现在的做法是这样的:

for(SelectItem si : listOfSomething) {
 if (si.getValue().equals(myValue) {
  theLabelIs = si.getLabel();
  break;
 }
}

也许我解释得不好,所以请告诉我,我会尽量解释得更好


共 (1) 个答案

  1. # 1 楼答案

    使用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");
        // ...
    }
    

    然后可以在backing bean中获得它,如下所示:

    String label = options.get(selectedValue);
    // ...
    

    甚至在下面的观点中

    You have selected <h:outputText value="#{bean.options[bean.selectedValue]}" />