当前位置: 首页 > 知识库问答 >
问题:

返回带有自定义消息的自定义响应实体(HttpStatus.BAD_REQUEST)的最简单方法?[重复]

钱渊
2023-03-14

这是我第一次使用 Spring Boot 开发 REST API。我想在收到错误请求 400 错误时返回自定义消息。

我有我的控制器:

@GetMapping("/DetailDossier/{id},{parameters}/")
public ResponseEntity<List<DetailDossierRspn>> DetailDossierQstn(
        @PathVariable(value = "id") String[] id, @PathVariable(value = "parameters") String parameters,
         throws ParseException {
    List<DetailDossierRspn> rspn = new ArrayList<>();

    WSDetailDossierService mainDAO = new WSDetailDossierService();

// If Sql result return -> List<DetailDossierRspn>

// If no sql result return null

    rspn = mainDAO.initialiserDAO(identifiant, coetb, null);
    if (rspn == null) {
        return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
    } else {
        return ResponseEntity.ok(rspn);
    }
}

我想用最简单的方法返回400错误:

java prettyprint-override">ResponseEntity<>(HttpStatus.BAD_REQUEST)

带有自定义消息。

我试图创建一个@控制器,但它不起作用,因为我的控制器返回了一个列表

有没有一种方法可以轻松创建自定义消息?

共有1个答案

牧熙云
2023-03-14

您需要创建一个自定义的< code>@ControllerAdvice:

声明在多个@Controller类之间共享@ExceptionHandler、@InitBinder或@ModelAttribute方法的类的@Component专门化。

扩展 ResponseEntityExceptionHandler

一个方便的基类,用于希望通过@ExceptionHandler方法跨所有@请求映射方法提供集中异常处理的@控制建议类。

基本上是这样的:

@ControllerAdvice
public class CustomExceptionHandler extends ResponseEntityExceptionHandler {

    @Override
    protected ResponseEntity<Object> handleHttpMessageNotReadable(HttpMessageNotReadableException ex, HttpHeaders headers, HttpStatus status, WebRequest request) {
        return new ResponseEntity<>("my custom message", status);
    }

}
 类似资料:
  • 我正在努力裁剪javax。验证。ConstraintValidator和javax。验证。根据我的需要限制ValidatorContext。我从格式错误的请求正文收到的响应消息始终采用以下形状: <代码> 此消息也以500而不是400错误请求的形式返回。我无法获得工作到解决方案来执行以下操作: 仅包括<代码> 我有以下代码: 向上面的代码发送格式错误的有效负载将导致如下消息: 我希望能够收到以下信

  • 本文向大家介绍MFC自定义消息的实现方法,包括了MFC自定义消息的实现方法的使用技巧和注意事项,需要的朋友参考一下 一、概述: 消息机制是windows程序的典型运行机制,在MFC中有很多已经封装好了的消息,如WM_BTN**等。但是在有些特殊情况下我们需要自定义一些消息去完成一些我们所需要的功能,这时候MFC的向导不能帮助我们做到这一点。对此,我们可以通过添加相应的代码去完成这个功能。 二、实现

  • 我通过endpoint与我的laravel服务器通话。我不使用Laravel View,因此无法访问其会话。 当一个需要的请求进来,我需要返回一个响应即etc每个参数?可能吗? 内部: 如果我应该使用字符串消息,而不是laravel重定向没有响应,我使用邮递员,我看到状态200。如何实现我想要的?我想用响应自定义每个必需的参数。

  • 简介 此消息 用来接收 用户自定义TOPIC消息 发送过来的事件。 消息体 ChannelMessageBean 例子 Kotlin @Subscribe(threadMode = ThreadMode.MAIN) fun onReceiveCustomMessage(customEvent: ChannelMessageBean) { // TODO } ChannelMessageB

  • 我试图用Spring Cloud Stream创建一个kafka使用者,以便监听在任何Spring上下文之外构建的kafka消息,并使用自定义头(operationType)。 我使用的是Spring Boot 1.5.x/Spring Cloud egdware.sr5和1.1.1版本的kafka-client和Kafka2.11。 我的侦听器类包含此方法 而operationType标头是存在

  • 问题内容: 我正在尝试以最简单的方式定义自己的异常类,这就是我得到的: 这就是Java编译器所说的: 我有一种感觉,该构造函数必须从继承,不是吗? 问题答案: 不,你没有“继承”非默认构造函数,需要在类中定义一个采用String的构造函数。通常,你在构造函数中使用来调用父构造函数。例如,像这样: