我有一个值存储为枚举,我想在Primefaces数据表中显示每个区域设置显示不同的值。
这是我目前在数据表中的内容:
<p:dataTable id="DtSources" var="source" value="#{sourceView.sources}" selection="#{sourceView.selectedSource}" selectionMode="single" scrollable="true" resizableColumns="true" rowKey="#{source.id}">
<f:facet name="header">Sources</f:facet>
<p:column headerText="Type">
<h:outputText value="#{source.type}" /> <!-- This is what I'm trying to fix -->
</p:column>
</p:dataTable>
&#13;
问题是#{source.type}中的值。它应显示为&#34; Collection&#34;或&#34;例子&#34;用英语和&#34; Menge&#34;或者&#34; Beispiele&#34;在德语中,它目前只显示枚举的丑陋字符串表示,如COLLECTION或EXAMPLES。
必须有一个很好的方法来做到这一点,但我还没有想到它。此外,出于显而易见的原因,我不想将逻辑添加到模型中。
答案 0 :(得分:-1)
在枚举中添加标签字段:
public enum Type {
COLLECTION ("Collection),
EXAMPLES("Examples");
private final String label;
Type (String label){
this.label= label;
}
public String getLabel(){
return label;
}
}
在.xhtml中显示自定义标签:
<p:column headerText="Type">
<p:outputLabel value="#{source.type.label}" />
</p:column>