【问题标题】:struts-2.5.13 - conversion.impl.XWorkConverter.convertValue conversion error for locale fr_FRstruts-2.5.13 - 语言环境 fr_FR 的 conversion.impl.XWorkConverter.convertValue 转换错误
【发布时间】:2017-11-13 17:42:38
【问题描述】:

我收到一个错误:

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

此处在文本字段 (UI) 中输入值 10。使用语言环境 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] 在 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] 在 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:?]

【问题讨论】:

  • 为了提供帮助,我们确实需要能够查看导致问题的代码。
  • 我还没有实现任何转换代码。这是从框架方面发生的,我包括日志跟踪以获取详细信息,

标签: struts2-interceptors


【解决方案1】:

错误很明显,因为法国属于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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多