@Controller和@RestController的区别
2016-11-01 00:00
330 查看
官方文档:
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
意思是:
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
例如:本来应该到success.jsp页面的,则其显示success.
2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
总结:@RestController
整个类所有方法不再返回视图页面,全部返回方法中定义的返回内容,比如json:
例如:
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
意思是:
@RestController注解相当于@ResponseBody + @Controller合在一起的作用。
1)如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
例如:本来应该到success.jsp页面的,则其显示success.
2)如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
3)如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
总结:@RestController
整个类所有方法不再返回视图页面,全部返回方法中定义的返回内容,比如json:
例如:
package com.kbs.platform.controller; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; @RequestMapping("/json") @RestController public class JsonController { @RequestMapping("/map") public Map<String, String> getmap(){ Map<String, String> map=new HashMap<>(); map.put("a", "b"); map.put("c", "d"); map.put("d", "小家心"); return map; } @RequestMapping("/body") public Map<String, String> getmap2(){ Map<String, String> map=new HashMap<>(); map.put("a", "b"); map.put("c", "d"); map.put("d", "小家心"); return map; } }
//实例二 @ResponseBody + @Controller //这个类的方法既可以返回视图,又可以返回想要的数据 package com.kbs.platform.controller; import java.util.HashMap; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @RequestMapping("/json") @Controller public class JsonController { //这个方法返回视图,没有对应的视图就会报错 @RequestMapping("/map") public Map<String, String> getmap(){ Map<String, String> map=new HashMap<>(); map.put("a", "b"); map.put("c", "d"); map.put("d", "小家心"); return map; } //这个方法返回json 不再返回视图 @RequestMapping("/body") public Map<String, String> getmap2(){ Map<String, String> map=new HashMap<>(); map.put("a", "b"); map.put("c", "d"); map.put("d", "小家心"); return map; } }
相关文章推荐
- @Controller和@RestController的区别?
- @Controller和@RestController的区别
- @Controller和@RestController的区别?
- @Controller 和 @RestController 区别
- @Controller和@RestController的区别
- @Controller和@RestController的区别?
- @RestController和@Controller注解的区别
- @Controller和@RestController的区别
- @Controller和@RestController的区别?
- @Controller和@RestController的区别
- @Controller和@RestController的区别?
- @Controller和@RestController的区别?
- @Controller和@RestController的区别?
- @Controller和@RestController的区别?
- @Controller和@RestController的区别
- @Controller和@RestController的区别
- @Controller和@RestController的区别
- @Controller和@RestController的区别?
- @Controller和@RestController的区别?
- @Controller和@RestController的区别?