我有一個值作爲一個枚舉存儲,我想在Primefaces數據表中顯示每個語言環境顯示不同的值。JSF在DataTable中顯示枚舉的自定義字符串
這是我目前在數據表:
<p:dataTable id="DtSources" var="source" value="#{sourceView.sources}" selection="#{sourceView.selectedSource}" selectionMode="single" scrollable="true" resizableColumns="true" rowKey="#{source.id}">
\t <f:facet name="header">Sources</f:facet>
\t
\t <p:column headerText="Type">
\t \t <h:outputText value="#{source.type}" /> <!-- This is what I'm trying to fix -->
\t </p:column>
</p:dataTable>
的問題是在#{} source.type的價值。它應該以英文顯示爲「Collection」或「Examples」,以德文顯示爲「Menge」或「Beispiele」,它目前僅顯示像COLLECTION或EXAMPLES這樣的枚舉的醜陋字符串表示形式。
必須有一個很好的方法來做到這一點,但我還沒有弄明白。另外,我不想將邏輯添加到模型中,原因很明顯。在.xhtml
public enum Type {
COLLECTION ("Collection),
EXAMPLES("Examples");
private final String label;
Type (String label){
this.label= label;
}
public String getLabel(){
return label;
}
}
顯示自定義標籤:
不,在這種情況下失敗,但你可以撤消我的編輯,點擊編輯歷史記錄中的1個按鈕。在數據表中需要它的事實不會導致與數據表相關的問題 – Kukeltje
與數據表的關係只是爲了處理每個類型的迭代。你願意寫一個答案來解釋你將如何解決這個問題? – KG6ZVP
我兩次指出你在正確的方向。首先通過編輯/縮小問題/編輯標記,甚至在我最後的評論中。而他SHOUTING也有幫助。除此之外,它是0:35這裏,睡覺時間 – Kukeltje