如何在datatable jsf中显示数据库中数值的文本

如何在datatable jsf中显示数据库中数值的文本,jsf,datatable,Jsf,Datatable,在datatable列中,如何显示从数据库检索的数字值的文本 例如,如果来自数据库的列的值是2,那么我需要在datatable中显示“Cheese”。类似地,如果值是3,那么我需要显示“cake”。您需要在支持bean中维护这些值的映射 private Map<Long, String> foods; public Bean() { foods = new HashMap<Long, String>(); foods.put(1L, "Pizza");

在datatable列中,如何显示从数据库检索的数字值的文本


例如,如果来自数据库的列的值是2,那么我需要在datatable中显示“Cheese”。类似地,如果值是3,那么我需要显示“cake”。

您需要在支持bean中维护这些值的映射

private Map<Long, String> foods;

public Bean() {
    foods = new HashMap<Long, String>();
    foods.put(1L, "Pizza");
    foods.put(2L, "Cheese");
    foods.put(3L, "Cake");
    // ...
}

public Map<Long, String> getFoods() { 
    return foods;
}
私人地图食品;
公共豆(){
foods=新HashMap();
食物。放入(1L,“比萨饼”);
食物。放入(2L,“奶酪”);
食物。放入(3L,“蛋糕”);
// ...
}
公共地图getFoods(){
归还食物;
}
然后你可以得到它如下

<h:dataTable value="#{bean.items}" var="item">
    <h:column>
        <h:outputText value="#{bean.foods[item.number]}" />
    </h:column>
</h:dataTable>


Where
#{item.number}
应该返回所需的数字作为
Long

@BalusC:感谢您的快速回复…您的解决方案有效:)@BalusC:最初我想使用messages.properties。是否可以将属性文件用于此目的?请告诉我不客气。当然,只需将
Map
替换为
Properties
。由于
Properties
扩展了
Map
,因此它同样可以正常工作。
#{item.number}
现在不一定需要是
长的
字符串
也可以。我也将尝试使用属性实现。谢谢您的输入。@BalusC我试图使用属性。但是有一些问题。请帮助我。messages.properties 1=cheese a=vannila在我的xhtml文件中,下面的工作正常,但不是下面的。我还需要替换数据库中的值,就是这个值好的