@ResponseBody
一般作用于方法上,加上该注解表示该方法返回结果直接写入到HHTP response Body中,常用于异步加载请求中。在RequestMapping中return返回值默认解析为跳转路径,如果此时想让controller返回一个字符串或对象到前台就会报404 not response的错误。加上之后就不会解析为跳转路径,会解析成相应的json格式对象、集合、字符串、xml等直接返回到前台,可以通过 ajax 的“success”:fucntion(data){} data直接获取到。
@ResponseBody,一般是使用在单独的方法上的,需要哪个方法返回json数据格式,就在哪个方法上使用,具有针对性。
下面是返回json格式的字符串
@RequestMapping(“/register”)
@ResponseBody
public String register(TestUserInfo testUserInfo,String username) throws Exception{
if(testUserService.findByUserName(username)==null){
testUserService.addTestUser(testUserInfo);
return “success”;
}else{
return “fail”;
}
}
@RequestMapping(“/upload/condition”)
public String search(Model model) {
List allArchiveCategory = archiveCategoryApi.getAllCategories();
List topLevelCategory = allArchiveCategory.stream().filter(category -> category.getParentid() == 0 || “视频”.equals(category.getName())).collect(Collectors.toList());
model.addAttribute(“archiveCategories”, topLevelCategory);
return “beike/upload-pop-condition”;
}
@RestController
@RestController,一般是使用在类上的,它表示的意思其实就是结合了@Controller和@ResponseBody两个注解,,使用了@RestController注解之后,其本质相当于在该类的所有方法上都统一使用了@ResponseBody注解,所以该类下的所有方法都会返回json数据格式,输出在页面上,而不会再返回视图。