有所有这些缺点,为什么要使用Converters?我想念什么吗?还有其他我不知道的技巧吗?
不,我认为你已经非常全面地描述了propertyeditor和Converter,以及如何声明和注册它们。
在我看来,propertyeditor的范围有限-它们有助于将String转换为类型,并且该字符串通常来自UI,因此使用@InitBinder和WebDataBinder注册propertyeditor才有意义。
另一方面,Converter更通用,它旨在用于系统中的任何转换-不仅用于与UI相关的转换(从字符串到目标类型)。例如,Spring Integration广泛使用转换器将消息有效负载转换为所需类型。
我认为对于UI相关的流,propertyeditor仍然是合适的,特别是对于需要为特定命令属性进行自定义的情况。对于其他情况,我将从Spring参考中获得建议,并编写一个转换器(例如,将Long ID转换为实体,例如作为示例)。