У меня есть контроллер Spring, который принимает несколько BigDecimal
RequestParams.
Локаль моего приложения — en_US, но только для этого метода контроллера мне нужно связать и преобразовать эти параметры BigDecimal
в локаль de_DE (т.е. #.###,## > DOT для группировки и ЗАПЯТАЯ для десятичного разделителя).
Эти значения BigDecimal
поступают из текстовых полей пользовательского интерфейса и уже имеют формат 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
}
Spring каким-то образом игнорирует мой шаблон числового формата. Обратите внимание, что аннотация DateTimeFormat
работает должным образом; разбор параметра startDate в правильной форме.
Любая помощь будет оценена по достоинству.
Спасибо.