struts-2.5.13 - locale fr_FR的conversion.impl.XWorkConverter.convertValue转换错误

时间:2017-11-13 17:42:38

标签: struts2-interceptors

我收到错误:

  

无法解释的数字:位置2的“10.00”

此处在文本字段(UI)中输入值10。与locale en_US相同的工作正常。

记录跟踪:

com.opensymphony.xwork2.XWorkException:无法解析的数字:位置2的“10.00”     在com.opensymphony.xwork2.conversion.impl.NumberConverter.convertToDouble(NumberConverter.java:108)〜[struts2-core-2.5.13.jar:2.5.13]     at com.opensymphony.xwork2.conversion.impl.NumberConverter.convertValue(NumberConverter.java:29)〜[struts2-core-2.5.13.jar:2.5.13]     在com.opensymphony.xwork2.conversion.impl.NumberConverter.convertValue(NumberConverter.java:65)〜[struts2-core-2.5.13.jar:2.5.13]     在com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.doConvertToNumber(XWorkBasicConverter.java:205)〜[struts2-core-2.5.13.jar:2.5.13]     在com.opensymphony.xwork2.conversion.impl.XWorkBasicConverter.convertValue(XWorkBasicConverter.java:108)〜[struts2-core-2.5.13.jar:2.5.13]     在com.opensymphony.xwork2.conversion.impl.XWorkConverter.convertValue(XWorkConverter.java:311)[struts2-core-2.5.13.jar:2.5.13]     at com.opensymphony.xwork2.ognl.OgnlTypeConverterWrapper.convertValue(OgnlTypeConverterWrapper.java:39)[struts2-core-2.5.13.jar:2.5.13]     在ognl.OgnlRuntime.getConvertedType(OgnlRuntime.java:1218)[ognl-3.1.15.jar:?]     在ognl.OgnlRuntime.getConvertedTypes(OgnlRuntime.java:1235)[ognl-3.1.15.jar:?]

1 个答案:

答案 0 :(得分:0)

由于法国属于countries using Arabic numerals with decimal comma

,因此错误很明显
String number = "20,981";
try {
    double dNumber = Double.parseDouble(number.replace('.', ','));
    System.out.println("My double is " + dNumber);
} catch (NumberFormatException nfe) {
    System.out.println("I got exception for invalid string " + number);
}

您可能还想强制执行特定的数字格式:

NumberFormat format = NumberFormat.getInstance(Locale.FRANCE);
Number number = format.parse("1,234");
double d = number.doubleValue();
相关问题