使用 IBM Rational Application Developer 轻松实现 JavaServer Faces Web 程序的全球化
2009-10-08 00:00:00 来源:WEB开发网有三种参数会传递给 NumberConverter 构建器:
“ICU4J:true”:它允许 NumberConverter 接受在模式中 ICU 特定的特征。
“pattern:”+ decimalFormatPattern: 这是在转化值的时候会用到的数字模式。
“locale:” + decimalFormatSymbols: 这是转化值时会用到的场所信息。它包含了十进制分隔符,百分比字符等等之类的符号。
至于 DateTimeConverter,模式和场所信息应该从服务器端获得:
列表 7. 使用 ICU4J 来生成数字模式和符号
public class FormatterUtils
{
private static DecimalFormat getDecimalFormatter()
{
Locale locale =
FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
return (DecimalFormat)NumberFormat.getInstance(locale);
}
public static String getDecimalFormatPattern()
{
return getDecimalFormatter().toPattern();
}
public static String getDecimalFormatSymbols()
{
Locale locale =
FacesContext.getCurrentInstance().getExternalContext().getRequestLocale();
DecimalFormatSymbols symbols = new DecimalFormatSymbols(locale);
//The information is provided as a string of 6 characters with fixed format:
StringBuilder sb = new StringBuilder();
sb.append(symbols.getGroupingSeparator());
sb.append(symbols.getDecimalSeparator());
sb.append(symbols.getPercent());
sb.append(symbols.getPerMill());
sb.append(symbols.getMinusSign());
sb.append(symbols.getCurrencySymbol());
return sb.toString();
}
}
更多精彩
赞助商链接