如何动态填充* .properties文件中的h:selectItems

时间:2011-11-01 10:48:50

标签: java java-ee richfaces facelets

如果我有这种代码的和平:

<rich:select enableManualInput="true" defaultLabel="Select time spent">

       <f:selectItems value="" />

</rich:select>

和一个属性文件,如:

key1=val1
key2=val2
key3=val3
key4=val4

问题是如何从属性文件中获取所有值并从中创建ArrayList<SelectItems>,以便我可以在下拉列表中使用它们?

1 个答案:

答案 0 :(得分:0)

如果您可以更改属性文件的布局,我建议将其存储为

key1=val1
key2=val2
key3=val3
key4=val4

属性教程:http://download.oracle.com/javase/tutorial/essential/environment/properties.html

Api:http://download.oracle.com/javase/6/docs/api/java/util/Properties.html

public ArrayList<SelectItem> propertiesToSelectItemList(final Properties props)
    {
        final ArrayList<SelectItem> result = new ArrayList<SelectItem>();
        for(Map.Entry<Object, Object> me : props.entrySet())
        {
            result.add(new SelectItem((String)me.getKey(), (String)me.getValue()));
        }
        return result;
    }

不幸的是,属性由Hashtable&lt; Object,Object&gt;支持。但除非你搞砸了,演员应该是安全的。