@PostMapping(value = "/mycontroller", produces = "application/json")
@ResponseBody
@ResponseStatus(HttpStatus.CREATED)
public MyDTOOuptup myMethod(@Valid @RequestBody MyDTO input) {
... body ...
}
@Data
@AllArgsConstructor
@NoArgsConstructor
public class MyDTO {
@NotNull(message="my custom error message for field_a")
@JsonProperty("field_A")
private String fieldA;
@NotNull(message="my custom error message for field_b")
@JsonProperty("field_B")
private String fieldB;
}
但是,我发现这个json体太冗长了。
{
"timestamp": "2020-03-31T14:29:42.401+0000",
"status": 400,
"error": "Bad Request",
"errors": [
{
"codes": [
"NotNull.myDTO.field_a",
"NotNull.field_a",
"NotNull.java.lang.String",
"NotNull"
],
"arguments": [
{
"codes": [
"myDTO.field_a",
"field_a"
],
"arguments": null,
"defaultMessage": "field_a",
"code": "field_a"
}
],
"defaultMessage": "my custom error message for field_a",
"objectName": "myDTO",
"field": "productId",
"rejectedValue": null,
"bindingFailure": false,
"code": "NotNull"
}
],
"message": "Validation failed for object='myDTO'. Error count: 1",
"path": "/mycontroller"
}
我如何指定我只需要错误描述消息或类似的东西?有灵巧/纤细的结构吗?
您可以定义自己的自定义异常并添加异常处理程序,
class ExceptionResponse {
private boolean success = false;
private String errorCode;
private String errorMessage;
private String exception;
private List<String> errors;
private String path;
private String timestamp = LocalDateTime.now().toString();
}
异常处理程序,
@ControllerAdvice
public class CustomExceptionHandler {
@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity<ExceptionResponse> invalidInput(MethodArgumentNotValidException ex, HttpServletRequest request) {
ExceptionResponse response = getExceptionResponse(); //generate exception response
return ResponseEntity.badRequest().contentType(MediaType.APPLICATION_JSON_UTF8).body(response);
}
}
希望有帮助!!
我利用最后几天在Clojure和ClojureScript中深入挖掘了Clojure.spec。 到目前为止,我发现在依赖某种格式的数据的公共函数中,在和中使用规范作为警卫是非常有用的。 有没有人知道如何在或防护中获得更好的错误消息? 我知道和,但这对那些或警卫没有帮助。
我正在使用带有PRG模式的JSF。(在我的导航规则中使用)。 问题是,当我收到验证错误(例如:用户未设置强制值)时,重定向没有完成(即,一篇文章后面跟着同一页的get)。 情况是: > 用户没有输入强制值并提交表单 发生验证错误,同一视图显示错误消息(无PRG) 用户设置强制值并提交== 用户点击后退按钮= 谁能帮帮我吗? 提前感谢。 斯特凡
对于错误的响应,是否可能在响应中返回验证注释消息?我认为这是可能的,但我注意到我们的项目没有给出详细的不良请求信息。 如果请求缺少IDField,我希望返回“IDField is required”。我用的是泽西2.0。我看到的回应是...
我为Money类编写了一个自定义Hibernate验证约束: 它工作正常,除了错误信息。我看到了非常奇怪的行为:找到了资源包,消息按名称解析,但它被包裹在特殊的字符中,如果消息不能按名称解析,通常会出现这些字符: 此处
问题内容: 我最近尝试使用sftp访问我的linux机器,在那里我实现了自己的简单外壳。并且我设置了除root用户以外的其他用户默认使用我的shell(通过编辑/ etc / passwd文件)。然后问题出现了,一旦我尝试通过sftp访问,我将收到一条消息:“接收的消息太长:”,我搜索了解决方案,一种解决方案是将该用户的默认shell改回普通的bash shell。我试过了,而且奏效了,问题在于,
问题内容: 当上面的代码运行时,它会在line上产生错误;。为什么? 问题答案: 不能表示为32位整数(类型)。可以将其表示为64位整数(类型)。Java中的长文字以“ L”结尾: