2

MessageInterpolator我为我创建了一个自定义,LocalValidatorFactoryBean但由于某种原因,没有typeMismatch错误传递给它。我使用的所有其他验证器如@NotNull@Size@Pattern等都按预期显示。

我留下了一个无法向用户显示的非常丑陋的错误:

无法将类型“java.lang.String”的属性值转换为属性“数据”所需的类型“org.springframework.web.multipart.MultipartFile”;嵌套异常是 java.lang.IllegalStateException:无法将类型 [java.lang.String] 的值转换为属性“数据”所需的类型 [org.springframework.web.multipart.MultipartFile]:找不到匹配的编辑器或转换策略”

澄清:我故意发送一个String而不是一个文件来触发typeMismatch错误。我的目标是使用人性化的错误消息而不是异常文本来优雅地处理这种验证错误。

相关版本信息:

  • 验证-api 1.0.0.GA
  • 休眠验证器 4.3.0.Final
  • 春天-* 3.1.1.RELEASE

感谢您的任何帮助!

4

1 回答 1

0

由于您正在处理Multipart参数,我怀疑您正在实施文件上传。您是否配置了multipartResolver

默认情况下,Spring 不进行多部分处理 [...]。您可以通过将多部分解析器添加到 Web 应用程序的上下文来启用 Spring 多部分处理。

请注意,如果您使用的是 Apache Commons 或 Servlet 3.0,则配置会有所不同。

其他可能的原因:

  • 请求不包含多部分(不发送文件)
  • 请求 uri 错误(它用于其他一些处理程序方法)
于 2012-06-28T18:52:32.640 回答