我为MessageInterpolator
创建了自定义LocalValidatorFactoryBean
但由于某种原因,没有 typeMismatch
错误传递给它。我正在使用的所有其他验证器,如@NotNull
,@Size
,@Pattern
等,都会按预期显示。
我留下了一个非常难看的错误,我无法向用户显示:
无法将类型'java.lang.String'的属性值转换为属性'data'所需的类型'org.springframework.web.multipart.MultipartFile';嵌套异常是java.lang.IllegalStateException:无法将类型[java.lang.String]的值转换为属性“data”所需的类型[org.springframework.web.multipart.MultipartFile]:找不到匹配的编辑器或转换策略“< / p>
澄清:我故意发送String
而不是文件来触发typeMismatch
错误。我的目标是使用人性化的错误消息而不是异常文本来优雅地处理这种验证错误。
相关版本信息:
感谢您的帮助!
答案 0 :(得分:0)
由于您正在处理Multipart
个参数,我怀疑您正在实现文件上传。您是否配置了multipartResolver?
默认情况下,Spring不进行多部分处理[...]。您可以通过向Web应用程序的上下文添加多部分解析程序来启用Spring多部分处理。
请注意,如果您使用的是Apache Commons或Servlet 3.0,则配置会有所不同。
其他可能的原因: