@Controller和@RestController的区别

1.@RestController注解相当于@ResponseBody 和 @Controller组合在一起的作用。

2.应用场景:
a. 只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面或者html,配置的视图解析器 InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
b. 如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。 如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加@ResponseBody注解。
例如:
@CrossOrigin
@Controller
public class FileUploadController {

//跳转到上传文件的页面
@RequestMapping(value="/gouploadimg", method = RequestMethod.GET)
public String goUploadImg() {
//跳转到 templates 目录下的 uploadimg.html
return “uploadimg”;
}

}

@RestController
//@CrossOrigin(origins = “*”, maxAge = 3600)//跨域
@RequestMapping("/mobile")
public class H5SiteController {
@RequestMapping(value="/course/queryCourseTypeDetails",method = RequestMethod.GET)
public String queryCourseTypeDetails(@RequestParam(value=“categoryId”,required=true) long categoryId) throws IOException {
Map<String, Object> jsonMap = new HashMap<String, Object>();
if (categoryId <= 0) {
jsonMap.put(“error”, “-2”);
jsonMap.put(“msg”, “分类id错误”);
return JSON.toJSONString(jsonMap);
}
// CourseCategoryService categoriesService = Spring.getBeanOfType(CourseCategoryService.class);
List<Map<String, Object>> result = null;
try {
result = courseCategoryService.getCourseCategory(categoryId);
} catch (Exception e) {
e.printStackTrace();
// Logger.error(“获取二三级菜单获取异常:” + e.getMessage());
}
jsonMap.put(“error”, 0);
jsonMap.put(“msg”, “获取二三级菜单成功”);
jsonMap.put(“courseList”, result);
return JSON.toJSONString(jsonMap);
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值