@Controller和@RestController的区别

Posted lgp20151222

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Controller和@RestController的区别相关的知识,希望对你有一定的参考价值。

我们一般都会在Controller上加上@Controller注解,但是有时候也见有加上@RestController的,现在就说说他们的区别:

1、不同。

@Controller类中的方法可以直接通过返回String跳转到jsp、ftl、html等模版页面。在方法上加@ResponseBody注解,也可以返回实体对象

@RestController类中的所有方法只能返回String、Object、Json等实体对象,不能跳转到模版页面。

@RestController相当于@ResponseBody + @Controller。

 

2、补充

@RestController中的方法如果想跳转页面,则用ModelAndView进行封装,如下:

@RestController
public class UserController {
    @RequestMapping(value = "/index",method = RequestMethod.GET)
    public String toIndex(){
        ModelAndView mv = new ModelAndView("index");
          return mv;
    }
}

 

以上是关于@Controller和@RestController的区别的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch源码分析-索引分析(一)

如何在我的新 Spring Boot 项目中关闭 Spring Security?

JavaFX: FXML嵌套和子Controller(Sub-Controller)

@Controller和@RestController的区别?

iOS第八课——Navigation Controller和Tab bar Controller

Angularjs,使用 data-ng-controller 和 ng-controller [重复]