如何动态地从 *.properties 文件填充 h:selectItems

发布于 2024-12-13 05:30:39 字数 369 浏览 0 评论 0原文

如果我有这样的代码:

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

       <f:selectItems value="" />

</rich:select>

和一个属性文件,例如:

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

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

If I have this peace of code:

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

       <f:selectItems value="" />

</rich:select>

and a properties file like:

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

The question is how to take all the values from the properties file and make a ArrayList<SelectItems> from them for example so I can use them in the drop-down list?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

秋心╮凉 2024-12-20 05:30:39

如果您可以更改属性文件的布局,我建议像

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支持。但除非你搞乱它,否则演员应该是安全的。

If you can change the layout of your properties file i would suggest storing it like

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

Properties Tutorial: 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;
    }

Unfortunately Properties is backed by a Hashtable<Object,Object>. But unless you mess with it, the casts should be safe.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文