栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

春季:如何在运行时选择响应类型?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

春季:如何在运行时选择响应类型?

另一种可能性是在上述两种解决方案之间采用混合方法:

@ControllerAdvicepublic class MyExceptionHandler extends ResponseEntityExceptionHandler {@ExceptionHandler({ MyDataException.class })protected ResponseEntity<Object> handleInvalidRequest(RuntimeException e, WebRequest request) {    MyDataExceptionire = (MyDataException) e;    List<FieldErrorResource> fieldErrorResources = new ArrayList<>();    List<FieldError> fieldErrors = ire.getErrors().getFieldErrors();    for (FieldError fieldError : fieldErrors) {        FieldErrorResource fieldErrorResource = new FieldErrorResource();        fieldErrorResource.setResource(fieldError.getObjectName());        fieldErrorResource.setField(fieldError.getField());        fieldErrorResource.setCode(fieldError.getCode());        fieldErrorResource.setMessage(fieldError.getDefaultMessage());        fieldErrorResources.add(fieldErrorResource);    }    ErrorResource error = new ErrorResource("MyDataException", ire.getMessage());    error.setFieldErrors(fieldErrorResources);    HttpHeaders headers = new HttpHeaders();    headers.setContentType(MediaType.APPLICATION_JSON);    return handleExceptionInternal(e, error, headers, HttpStatus.UNPROCESSABLE_ENTITY, request);}}

在此博客上提出的解决方案

编辑

我还从博客中添加了FieldError和ErrorResource类,因为将来可能会删除它:

错误资源:

@JsonIgnoreProperties(ignoreUnknown = true)public class ErrorResource {private String pre;private String message;private List<FieldErrorResource> fieldErrors;public ErrorResource() { }public ErrorResource(String pre, String message) {    this.pre = pre;    this.message = message;}public String getCode() { return pre; }public void setCode(String pre) { this.pre = pre; }public String getMessage() { return message; }public void setMessage(String message) { this.message = message; }public List<FieldErrorResource> getFieldErrors() { return fieldErrors; }public void setFieldErrors(List<FieldErrorResource> fieldErrors) {    this.fieldErrors = fieldErrors;}}

FieldErrorResource:

@JsonIgnoreProperties(ignoreUnknown = true)public class FieldErrorResource {private String resource;private String field;private String pre;private String message;public String getResource() { return resource; }public void setResource(String resource) { this.resource = resource; }public String getField() { return field; }public void setField(String field) { this.field = field; }public String getCode() { return pre; }public void setCode(String pre) { this.pre = pre; }public String getMessage() { return message; }public void setMessage(String message) { this.message = message; }}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/391747.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号