You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Spring Boot Starter Validation中自定义含输入值的错误消息

在Spring Validation错误消息中包含用户输入值的实现方案

不需要编写特殊方法,Spring Boot Starter Validation本身支持在校验注解的消息模板中直接引用用户输入的实际值,只需替换占位符即可实现需求。

具体修改步骤:

  • 将你代码中所有的{INSERT_GIVEN_VALUE}占位符替换为Spring Validation内置的{validatedValue},这个占位符会自动填充用户提交的实际参数值。

修改后的DTO核心字段示例:

@NotNull
@Max(value = 90, message = "Latitude must be in range of -90 to 90°. Given: {validatedValue}.")
@Min(value = -90, message = "Latitude must be in range of -90 to 90°. Given: {validatedValue}.")
private Double latitude;

@JsonProperty("past_days")
@Builder.Default
@Max(value = 92, message = "Past days is invalid. Allowed range 0 to 92. Given {validatedValue}.")
@Min(value = 0, message = "Past days is invalid. Allowed range 0 to 92. Given {validatedValue}.")
private Integer pastDays = 0;

效果说明:

当用户输入不符合规则的参数(比如latitude传100、past_days传93)时,返回的错误消息会自动替换为:

  • Latitude must be in range of -90 to 90°. Given: 100.
  • Past days is invalid. Allowed range 0 to 92. Given 93.

额外提示:

Spring Validation还提供了其他实用的内置占位符:

  • {value}:代表注解中设置的阈值(比如@Max的90、@Min的-90)
  • {property}:代表字段的属性名

注意事项:

确保项目已引入spring-boot-starter-validation依赖,并且在接口方法上用@Valid或@Validated标记需要校验的DTO参数,这样校验逻辑才会触发并生成带实际值的错误消息。

内容的提问来源于stack exchange,提问作者Gianni Spear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 20:19:55