【发布时间】:2021-07-17 01:48:40
【问题描述】:
我有一个作为 Kotlin 项目的 Spring Boot 应用程序(版本为 2.4.5)。现在,当我输入无效的内容时,我会收到一条错误消息,但不是我在注释中设置的错误消息。
控制器
@PostMapping(value = ["/seatMap/save"])
fun addSeatPlan(@RequestPart @Valid data: DSeatMap, @RequestPart image: MultipartFile?, auth: AuthenticationToken) {
try {
if (data.uuid == null) {
seatService.addSeatMap(auth.organisation!!, data, image)
} else {
seatService.updateSeatMap(data, auth.organisation!!, image)
}
} catch (e: UnauthorizedException) {
throw e
}
}
数据类
import java.util.*
import javax.validation.constraints.NotEmpty
data class DSeatMap(
var uuid: UUID?,
@field:NotEmpty(message = "name is empty")
val name: String,
var data: String,
val quantity: Int,
var settings: DSettings?
)
我的回复,这里应该是 message = "name is empty"
{
"timestamp": "2021-04-22T19:47:08.194+00:00",
"status": 400,
"error": "Bad Request",
"message": "Validation failed for object='data'. Error count: 1",
}
如果我设置了属性,它会显示正确的属性,但我不想拥有所有的辅助信息,我只想输出消息
server.error.include-binding-errors=always
结果:
{
"timestamp": "2021-04-22T19:56:30.058+00:00",
"status": 400,
"error": "Bad Request",
"message": "Validation failed for object='data'. Error count: 1",
"errors": [
{
"codes": [
"NotEmpty.data.name",
"NotEmpty.name",
"NotEmpty.java.lang.String",
"NotEmpty"
],
"arguments": [
{
"codes": [
"data.name",
"name"
],
"arguments": null,
"defaultMessage": "name",
"code": "name"
}
],
"defaultMessage": "name is empty",
"objectName": "data",
"field": "name",
"rejectedValue": "",
"bindingFailure": false,
"code": "NotEmpty"
}
],
"path": "/api/dashboard/seatMap/save"
}
【问题讨论】:
-
你能不能也设置
server.error.include-message=always如果这样我会写一个回答 -
@ChrisMaggiulli 我已经设置了这个属性但是还是不行
标签: java spring spring-boot validation kotlin