1
我正在使用XPages中的動態視圖面板。格式化數字的問題不符合視圖列中定義的格式。 我搜索並發現格式化數字的方式是通過定製程序bean。我已經得到了這個bean的一些代碼示例,儘管它們都沒有格式化包含數字的列的示例。 有沒有人有這種治療格式的例子?格式化xpage中dynamyc視圖面板中的列編號
非常感謝!
我正在使用XPages中的動態視圖面板。格式化數字的問題不符合視圖列中定義的格式。 我搜索並發現格式化數字的方式是通過定製程序bean。我已經得到了這個bean的一些代碼示例,儘管它們都沒有格式化包含數字的列的示例。 有沒有人有這種治療格式的例子?格式化xpage中dynamyc視圖面板中的列編號
非常感謝!
下面是一個getValueAsString()
方法的代碼片段,該方法從ExtendedViewColumnConverter
類中處理基於用戶語言環境的數字格式。
該代碼假定變量currentLocale
包含用戶區域設置。 currentLocale是java.util.Locale.Locale的一個實例,我假設你有logik來處理這個例如作爲用戶bean的一部分。如果沒有,獲取當前區域設置的,其中一個方法就是做這個:當然
Locale currentLocale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
你應該有一個已經工作的定製豆(擴展DominoViewCustomizer
)。
public static class ExtendedViewColumnConverter extends ViewColumnConverter {
...
@Override
public String getValueAsString(final FacesContext context, final UIComponent component, final Object value) {
if (value instanceof Number) {
NumberFormat nf = NumberFormat.getInstance(currentLocale);
DecimalFormat df = (DecimalFormat) nf;
df.setRoundingMode(RoundingMode.HALF_UP);
switch (this.colDef.getNumberFmt()) {
case ViewColumn.FMT_GENERAL: {
// no further formatting needed
break;
}
case ViewColumn.FMT_FIXED: {
df.setMinimumFractionDigits(this.colDef.getNumberDigits());
df.setMaximumFractionDigits(this.colDef.getNumberDigits());
break;
}
default: {
// no further formatting needed
break;
}
}
return df.format(value);
}
}
...
}
Thanks Per。變量currentlocale在哪裏?這是一個財產嗎? –
我已經添加了對currentLocale的解釋 –
對不起,但是我對java很少有經驗。我把你的代碼放到我的bean定製器中,並給出錯誤'colDef無法解析或不是字段':switch(this.colDef.getNumberFmt())。 –