gpt4 book ai didi

java - Spring bean 验证不会替换类型不匹配错误的消息

转载 作者:行者123 更新时间:2023-11-29 09:13:01 24 4
gpt4 key购买 nike

我已经为我的 LocalValidatorFactoryBean 创建了一个自定义的 MessageInterpolator 但由于某些原因,没有出现 typeMismatch 错误传入其中。我使用的所有其他 validator 如 @NotNull@Size@Pattern 等都按预期显示。

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

Failed to convert property value of type 'java.lang.String' to required type 'org.springframework.web.multipart.MultipartFile' for property 'data'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.MultipartFile] for property 'data': no matching editors or conversion strategy found"

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

相关版本信息:

  • 验证-api 1.0.0.GA
  • hibernate validator 4.3.0.Final
  • spring-* 3.1.1.RELEASE

感谢您的帮助!

最佳答案

由于您正在处理 Multipart 参数,我怀疑您正在实现文件上传。你配置了一个multipartResolver吗? ?

By default, Spring does no multipart handling [...]. You enable Spring multipart handling by adding a multipart resolver to the web application's context.

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

其他可能的原因:

  • 请求不包含多部分(不发送文件)
  • 请求 uri 错误(它是为其他处理程序方法设计的)

关于java - Spring bean 验证不会替换类型不匹配错误的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11248598/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com