由于与遗留系统的兼容性,我有特定的要求,对于我的应用程序中的某些表格,应该以大写字母保存在数据库中。通过各种解决方案,我发现 Spring Web-MVC 中有两个特性可以帮助实现这一点:
- Spring Converter SPI 并使用 WebMVC 配置注册它
- 自定义 PropertyEditor 并使用 WebDataBinder API 附加它。
第一种方法将所有内容都转换为大写,因为它是在应用程序级别注册的,我只想将其限制为某种形式。
第二种方法可以应用于手选控制器。
它们都有效。但是对于第二种方法,我不希望在渲染阶段调用我的自定义 PropertyEditor。只有在提交表单时才需要调用它。我正在寻找可以解决它的解决方案。
可以肯定的是,解决方案不必坚持上述方法之一。另外,我想避免输入字段上的 JavaScript 侦听器将所有内容都转换为大写字母,因为我认为这不是一件普通的事情。