Spring MVC控制器方法应该何时应用@ResponseBody?

时间:2013-11-20 07:00:15

标签: java spring spring-mvc

我在Spring控制器中使用@ResponseBody注释,但我不确定何时使用它。另外,我命名了我的方法index,我想知道这是否重要。我的方法负责人是

  @RequestMapping(value = "/addproduct", method = RequestMethod.POST)
    public ModelAndView index(@RequestParam("name") String name,
                              @RequestParam("file") MultipartFile file,
                              @RequestParam("desc") String desc,) {

但是在同一个控制器的另一个方法中,我使用@ResponseBody,我想知道该用法何时是正确的:

@RequestMapping(value = "", method = RequestMethod.GET)
    @ResponseBody
    public ModelAndView start() {
你能告诉我吗?功能正常,但我想确定我在做什么。

1 个答案:

答案 0 :(得分:2)

当您使用@ResponseBody时,控制器会将您返回的内容转换为HttpMessageConverter的响应正文。

通常,当您想要返回特定数据格式(如json或xml)时,可以使用它。这是一个示例:

    @RequestMapping(value = "/addproduct", method = RequestMethod.POST)
    public String index(@RequestParam("name") String name,
                            @RequestParam("file") MultipartFile file,
                            @RequestParam("desc") String desc,) {
           return "{\"name\": \"" + name + "\"}";
    }

然后,您可以得到回复:{\“name \”:\“xxxxxx \”}“