我需要澄清一下Spring MVC 格式化程序与转换器之间的差异。
我对它们之间的主要区别的理解是格式化程序处理将要显示给最终用户的数据,例如日期,SSN或信用卡号,而转换器处理隐藏在表单控件后面的数据,例如select选项的value属性。
我是对还是错?有人可以提供建议和/或样本,以便更好地解释两者之间的差异。
答案 0 :(得分:17)
转换器用于将一种Java类型转换为另一种Java类型。例如,从Long
到java.util.Date
或从Integer
到Color
或从String
到Date
。它可以在Web层或需要转换服务的任何其他层中使用。
Formatters 用于将String
转换为另一种Java类型并返回。因此,一种类型必须是String
。例如,您不能编写将Long
转换为Date
的格式化程序。格式化程序的示例为DateFormatter
,用于将String
解析为java.util.Date
并格式化Date
。此外,格式化程序的消息可以进行本地化。
结论:格式化程序适用于Web环境,例如Spring MVC应用程序。
答案 1 :(得分:1)
转换器组件用于将一种类型转换为另一种类型,并通过强制将所有此类转换相关代码放在一个位置来提供更清晰的分离。
Spring已经支持常用类型的内置转换器,并且框架也可以扩展,以便编写自定义转换器。
Spring Formatters进入图片,根据渲染的显示格式对数据进行格式化。示例可能包括根据区域设置等格式化日期/时间戳值。