How to respond with an HTTP 400 error in a Spring MVC @ResponseBody method returning String

To respond with an HTTP 400 error in a Spring MVC controller method that returns a String, you can throw a ResponseStatusException with a status of BAD_REQUEST.

Here is an example of how you can do this:

@ResponseBody
@GetMapping("/some-url")
public String someMethod() {
    // some logic here
    throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Invalid request");
}

In this example, the ResponseStatusException is thrown with a status of BAD_REQUEST (HTTP 400) and a message. The message will be included in the response body.

Alternatively, you can use the HttpServletResponse object to set the response status and write the response body manually:

@ResponseBody
@GetMapping("/some-url")
public String someMethod(HttpServletResponse response) {
    // some logic here
    response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
    return "Invalid request";
}

I hope this helps! Let me know if you have any questions.