关于java:ResponseBody和RestController的区别

36次阅读

共计 1168 个字符,预计需要花费 3 分钟才能阅读完成。

@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<ArchiveCategory> allArchiveCategory = archiveCategoryApi.getAllCategories();
List<ArchiveCategory> 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 数据格式,输入在页面上,而不会再返回视图。
正文完
 0