当前位置: 首页 > 面试题库 >

Spring MVC @ResponseBody方法返回字符串时,如何响应HTTP 400错误?

宗政元青
2023-03-14
问题内容

我将Spring MVC用于简单的JSON API,其@ResponseBody基础方法如下所示。(我已经有一个直接生成JSON的服务层。)

@RequestMapping(value = "/matches/{matchId}", produces = "application/json")
@ResponseBody
public String match(@PathVariable String matchId) {
    String json = matchService.getMatchJson(matchId);
    if (json == null) {
        // TODO: how to respond with e.g. 400 "bad request"?
    }
    return json;
}

问题是,在给定的情况下,最简单,最干净的响应HTTP 400错误的方法是什么?

我确实遇到过类似的方法:

return new ResponseEntity(HttpStatus.BAD_REQUEST);

…但是我不能在这里使用它,因为我的方法的返回类型是String,而不是ResponseEntity。


问题答案:

将返回类型更改为ResponseEntity<>,则可以在下面使用400

return new ResponseEntity<>(HttpStatus.BAD_REQUEST);

并要求正确

return new ResponseEntity<>(json,HttpStatus.OK);

更新1

在Spring 4.1之后,ResponseEntity中的辅助方法可以用作

return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);

return ResponseEntity.ok(json);


 类似资料:
  • 我使用spring MVC来创建一个简单的JSON API,使用基于的方法,如下所示。(我已经有一个直接生成JSON的服务层。) 问题是,在给定的场景中,什么是响应HTTP 400错误的最简单、最干净的方法? 我确实遇到过这样的做法: ...但我不能在这里使用它,因为我的方法的返回类型是String,而不是ResponseEntity。

  • 我使用Spring MVC作为一个简单的JSON API,使用基于的方法,如下所示。(我已经有一个直接生成JSON的服务层。) 在给定的场景中,最简单、最干净的HTTP 400错误响应方式是什么? 我确实遇到了这样的方法: ...但是我不能在这里使用它,因为我的方法的返回类型是字符串,而不是响应实体。

  • 问题内容: 我正在将Spring Boot与基于@ResponseBody的方法结合使用,如下所示: 我尝试了一些典型的方法,例如: res.setStatus(HttpStatus.NOT_FOUND.value()); 新的ResponseEntity(HttpStatus.BAD_REQUEST); 但是我需要返回Response。 如果视频为空,如何在此处返回404状态代码? 问题答案:

  • 我正在使用基于@ResponseBody的spring boot方法,如下所示: 我尝试了一些典型的方法,如: res.setstatus(httpstatus.not_found.value()); 新建ResponseEntity(httpstatus.bad_request); 但我需要回复。 如果视频为空,如何返回404状态码?

  • 问题内容: 我需要实现一个调用Web服务并返回响应的函数。 我试过了 在调用 Web服务时,将成功调用。但是在接收到响应之前返回。因此,我正在获取重调谐器值“ initial_value”。函数 如何从响应中返回值? 问题答案: GWT不支持同步Ajax,因此您必须使用异步模式对应用程序进行编码。 GWT用于执行请求的低级对象是XMLHttpRequest(旧的IE版本除外),并且GWT总是在as

  • 我将对象作为JSON字符串存储在数据库中。我想制作一个公开这些字符串的REST服务。然而,当我编写方法时,我返回的字符串中的引号被转义了。例如,我包含了一个返回字符串的方法,