Xpages 格式化xpage中dynamyc视图面板中的列号

Xpages 格式化xpage中dynamyc视图面板中的列号,xpages,Xpages,我在XPages中使用动态视图面板。设置数字格式不遵循“视图”列中定义的格式的问题。 我搜索并发现格式化数字的方法是通过定制程序bean。我有一些这个bean的代码示例,尽管没有一个示例包含格式化包含数字的列。 有人举过这种治疗的例子吗 非常感谢 下面是一个代码片段,它来自一个ExtendedViewColumnConverter类的getValueAsString()方法,该类根据用户区域设置处理数字格式 代码假定变量currentLocale包含用户区域设置。currentLocale是ja

我在XPages中使用动态视图面板。设置数字格式不遵循“视图”列中定义的格式的问题。 我搜索并发现格式化数字的方法是通过定制程序bean。我有一些这个bean的代码示例,尽管没有一个示例包含格式化包含数字的列。 有人举过这种治疗的例子吗


非常感谢

下面是一个代码片段,它来自一个
ExtendedViewColumnConverter
类的
getValueAsString()
方法,该类根据用户区域设置处理数字格式

代码假定变量
currentLocale
包含用户区域设置。currentLocale是java.util.Locale.Locale的一个实例,我假设您有logik来处理这个问题,例如作为用户bean的一部分。如果不是,则获取当前区域设置的一种方法是:

Locale currentLocale=FacesContext.getCurrentInstance().getViewRoot().getLocale();
当然,您应该有一个已经在工作的定制器bean(它扩展了
DominoViewCustomizer

公共静态类ExtendedViewColumnConverter扩展ViewColumnConverter{
...
@凌驾
公共字符串getValueAsString(最终面上下文、最终UIComponent、最终对象值){
if(值instanceof Number){
NumberFormat nf=NumberFormat.getInstance(currentLocale);
DecimalFormat df=(DecimalFormat)nf;
df.设置舍入模式(舍入模式半向上);
开关(this.colDef.getNumberFmt()){
案例视图Column.FMT_概述:{
//无需进一步格式化
打破
}
案例ViewColumn.FMT_已修复:{
setMinimumFractionDigits(this.colDef.getNumberDigits());
setMaximumFractionDigits(this.colDef.getNumberDigits());
打破
}
默认值:{
//无需进一步格式化
打破
}
}
返回df.format(值);
}
}
...
}

这里是一个来自
ExtendedViewColumnConverter
类的
getValueAsString()
方法的代码片段,该类处理基于用户区域设置的数字格式设置

代码假定变量
currentLocale
包含用户区域设置。currentLocale是java.util.Locale.Locale的一个实例,我假设您有logik来处理这个问题,例如作为用户bean的一部分。如果不是,则获取当前区域设置的一种方法是:

Locale currentLocale=FacesContext.getCurrentInstance().getViewRoot().getLocale();
当然,您应该有一个已经在工作的定制器bean(它扩展了
DominoViewCustomizer

公共静态类ExtendedViewColumnConverter扩展ViewColumnConverter{
...
@凌驾
公共字符串getValueAsString(最终面上下文、最终UIComponent、最终对象值){
if(值instanceof Number){
NumberFormat nf=NumberFormat.getInstance(currentLocale);
DecimalFormat df=(DecimalFormat)nf;
df.设置舍入模式(舍入模式半向上);
开关(this.colDef.getNumberFmt()){
案例视图Column.FMT_概述:{
//无需进一步格式化
打破
}
案例ViewColumn.FMT_已修复:{
setMinimumFractionDigits(this.colDef.getNumberDigits());
setMaximumFractionDigits(this.colDef.getNumberDigits());
打破
}
默认值:{
//无需进一步格式化
打破
}
}
返回df.format(值);
}
}
...
}

谢谢。变量currentlocale在哪里?这是一个属性吗?我已经添加了对CurrentLocal的解释。很抱歉,我对java没有什么经验。我将您的代码放入我的bean自定义程序,并在:switch(this.colDef.getNumberFmt())行上给出错误“colDef无法解析或不是字段”。colDef是扩展ViewColumnConverter的类的构造函数的一部分。为了使用我的示例,您需要有一个具有这样一个类的工作定制器bean。看看我的答案,它链接到Jesse Gallagher在Github上的代码:谢谢。变量currentlocale在哪里?这是一个属性吗?我已经添加了对CurrentLocal的解释。很抱歉,我对java没有什么经验。我将您的代码放入我的bean自定义程序,并在:switch(this.colDef.getNumberFmt())行上给出错误“colDef无法解析或不是字段”。colDef是扩展ViewColumnConverter的类的构造函数的一部分。为了使用我的示例,您需要有一个具有这样一个类的工作定制器bean。看看我的答案,它链接到Jesse Gallagher在Github上的代码: