- Building Web Apps with Spring 5 and Angular
- Ajitesh Shukla
- 180字
- 2021-07-02 19:38:21
Using @ResponseBody annotation
This section represents the concepts related to the usage of the @ResponseBody annotation for returning a response to the client request.
The @ResponseBody annotation can be applied both at the class level and the method level. When @ResponseBody is applied at the class level along with the @Controller annotation, another annotation such as @RestController can be used instead.
The @ResonseBody annotation represents the fact that the value returned by the method will form the body of the response. When the value returned is an object, the object is converted into an appropriate JSON or XML format by HttpMessageConverters. The format is decided based on the value of the produce attribute of the @RequestMapping annotation, and also the type of content that the client accepts. Take a look at the following example:
@Controller
public class RestDemoController {
@RequestMapping(value="/hello", method=RequestMethod.POST, produces="application/json")
@ResponseBody
public HelloMessage getHelloMessage(@RequestBody User user) {
HelloMessage helloMessage = new HelloMessage();
String name = user.getName();
helloMessage.setMessage( "Hello " + name + "! How are you doing?");
helloMessage.setName(name);
return helloMessage;
}
}