У меня есть контроллер пружины, который принимает несколько BigDecimal
RequestParams.Spring MVC Controller NumberFormat Аннотация Проблема с шаблоном в BigDecimal
Мой локаль применения - en_US, но только для этого метода контроллера. Мне нужно связать и преобразовать эти параметры BigDecimal
в de_DE locale (т.е. #. ###, ##> DOT для группировки и COMMA для десятичного разделителя).
Эти значения BigDecimal
исходят из текстовых полей пользовательского интерфейса, и они уже находятся в формате de_DE
. Вот мой контроллер код, который не удается со следующей ошибкой:
"Failed to convert value of type 'java.lang.String' to required type 'java.math.BigDecimal'; nested exception is 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 каким-то образом игнорирует мой шаблон NumberFormat. Обратите внимание, что аннотация DateTimeFormat
работает должным образом; разбор параметра startDate в правильной форме.
Любая помощь будет оценена по достоинству.
Спасибо.
Вы можете отлаживать часть кода JavaScript. Наверное, вы отправляете строковое значение. Вы можете указать его в свой код javascript –
@ user3087839 javascript здесь неактуальен; конечно, я отправляю кучу строк со стороны просмотра. Отправка формы - это способ отправки строкового ключа, пары значений с одной стороны на другую. Я спрашиваю, как преобразовать эти значения параметров строки обычным способом. – Ahmet
Аннотация работает, потому что она дает ошибку, например NumberFormatException. Странно отправлять строку и пытаться ее форматировать позже. –