我有一个采用多个BigDecimalRequestParams的弹簧控制器。
我的应用程序语言环境是 en_US 但只是对于这个控制器方法,我需要BigDecimal在 de_DE 语言环境中绑定和转换这些参数(即#.###,## > DOT 用于分组和 COMMA 用于小数分隔符)。
这些BigDecimal值来自 UI 文本框并且它们已经在de_DE格式中。这是我的控制器代码失败并出现以下错误:
“未能将‘java.lang.String’类型的值转换为所需类型‘java.math.BigDecimal’;嵌套异常为java.lang.NumberFormatException”
@RequestMapping(value = "/create", method = RequestMethod.POST)
public ModelAndView create(@RequestParam("referenceNumber") String referenceNumber, @RequestParam("startDate") @DateTimeFormat(pattern="dd-MM-yyyy") Date startDate, @RequestParam("amount1") @NumberFormat(pattern = "#.###,##") BigDecimal amount1, @RequestParam("amount2") @NumberFormat(pattern = "#.###,##") BigDecimal amount2) {
// Do something and return
}
Run Code Online (Sandbox Code Playgroud)
Spring 以某种方式忽略了我的数字格式模式。请注意DateTimeFormat注释按预期工作;以正确的形式解析 startDate 参数。
任何帮助,将不胜感激。
谢谢。
java spring spring-mvc spring-annotations numberformatexception