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