Разница между Spring форматировщиками и преобразователями MVC
Мне нужно некоторое пояснение относительно разницы между Spring MVC formatters и преобразователями.
Мое понимание основной разницы между ними заключается в том, что форматор работает с данными, которые будут отображаться конечному пользователю, например, дата, номер SSN или номер кредитной карты , тогда как конвертер работает с данными, скрытыми за элементами управления формами, такими как атрибут value для опции выбора.
Я прав или неправ? Может кто-то, пожалуйста, дайте советы и/или образцы, чтобы лучше объяснить разницу между ними.
Ответы
Ответ 1
Преобразователи используются для преобразования одного типа Java в другой тип Java. Например, от Long
до java.util.Date
или от Integer
до Color
или от String
до Date
. Он может использоваться в веб-уровне или любом другом уровне, который нуждается в услуге преобразования.
Форматы используются для преобразования String
в другой тип Java и обратно. Итак, один тип должен быть String
. Вы не можете, например, написать форматировщик, который преобразует Long
в Date
. Примеры форматировщиков DateFormatter
, для синтаксического анализа String
до java.util.Date
и форматирования a Date
. Кроме того, сообщения форматировщиков могут быть локализованы.
Заключение: форматировщики подходят в веб-среде, например, при использовании приложения Spring MVC.
Ответ 2
Компоненты конвертера используются для преобразования одного типа в другой тип, а также для обеспечения более чистого разделения путем принудительного размещения всего такого кода, связанного с преобразованием, в одном месте.
Spring уже поддерживает встроенные преобразователи для обычно используемых типов, и среда достаточно расширяема для написания собственных преобразователей.
Spring Форматировщики входят в изображение для форматирования данных в соответствии с отображением, на котором оно отображается. Примеры могут включать в себя значения даты/времени форматирования в соответствии с локалями и т.д.