Spring总是提供非常有用的默认值来处理验证错误。但有时看起来很难定制这些。在我的情况下,我有一个自定义验证,它使用JavaScript函数来验证域对象中的字段。默认验证错误会生成4个消息代码,它们使用对象名称,字段名称,字段类型和验证类型。到现在为止还挺好。但我想添加一个包含js函数名称作为组件的附加代码。我怎么能这样做?Spring验证错误的文档
或者更一般的我的问题是:我在哪里可以找到Spring构建默认错误消息的方式以及如何操作它们的文档。
在我来说,我得到这样的输出:
{
"timestamp": 1457092927829,
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.web.bind.MethodArgumentNotValidException",
"errors": [
{
"codes": [
"JSValidated.order.validFrom",
"JSValidated.validFrom",
"JSValidated.java.time.ZonedDateTime",
"JSValidated"
],
"arguments": [
{
"codes": [
"order.validFrom",
"validFrom"
],
"arguments": null,
"defaultMessage": "validFrom",
"code": "validFrom"
},
"checkOrder",
"static/OrderValidator.js"
],
"defaultMessage": "validation checkValidFrom failed",
"objectName": "order",
"field": "validFrom",
"rejectedValue": 1196586930,
"bindingFailure": false,
"code": "JSValidated"
},
{
"codes": [
"NotEmpty.order.id",
"NotEmpty.id",
"NotEmpty.java.lang.String",
"NotEmpty"
],
"arguments": [
{
"codes": [
"order.id",
"id"
],
"arguments": null,
"defaultMessage": "id",
"code": "id"
}
],
"defaultMessage": "may not be empty",
"objectName": "order",
"field": "id",
"rejectedValue": null,
"bindingFailure": false,
"code": "NotEmpty"
}
],
"message": "Validation failed for object='order'. Error count: 2",
"path": "/order"
}
如何添加或更改密码?我如何添加或更改参数列表?所有的东西都记录在哪里?
如果这些验证基于JSR 303注释(即,如果使用包javax.validation中的注释),那么可以使用每个验证注释中可用的属性message来修改默认消息。 –
是的,谢谢。代码和参数怎么样? – Gregor