使用 IBM Rational Application Developer 轻松实现 JavaServer Faces Web 程序的全球化
2009-10-08 00:00:00 来源:WEB开发网通过再次使用 NumberConverter,来将计算结果格式化回至 String 对象。
使用格式化的值以进行显示。
列表 9 中的代码举了一个例子,展示了怎样分析用户输入(对于 Deutsch 或者 German,场所是“de”):
列表 9. JavaScript 分析的输入数字
<script>
var decimalFormatPattern = "<%= FormatterUtils.getDecimalFormatPattern() %>";
var decimalFormatSymbols = "<%= FormatterUtils.getDecimalFormatSymbols() %>";
function formatDecimal(input)
{
var converter = hX.getConverterById("number_converter");
if(null == converter)
{
hX.addConverter("number_converter",
new hX.NumberConverter("pattern:" + decimalFormatPattern,
"locale:" + decimalFormatSymbols, "ICU4J:true"));
}
converter = hX.getConverterById("number_converter");
var output = cvt.stringToValue(input);
return output;
}
var parsedValue = formatDecimal("1.000,1"); //the parsed value is 1000.1
parsedValue = formatDecimal("1000,1"); //the parsed value is 1000.1
parsedValue = formatDecimal("oops"); //parsing fails, null is returned
</script>
列表 9 中的代码在以下方面与列表 6 十分相似:从服务器端获取模式和场所信息,创建一个 NumberConverter 的范例,然后执行该任务。唯一的区别是调用的方法:stringToValue(). 方法的名字是不言而喻的:它分析一个 String 对象,并试着将其转化为 Number 对象。如果在转化期间发生了什么错误,那么该方法将会返回 null。因此,NumberConverter 也可以用于识别用户输入。
更多精彩
赞助商链接