@Controller和@RestController的区别?

知识点:@RestController注解至关于@ResponseBody + @Controller合在一块儿的做用。html

1) 若是只是使用@RestController注解Controller,则Controller中的方法没法返回jsp页面,或者html,配置的视图解析器 InternalResourceViewResolver不起做用,返回的内容就是Return 里的内容。java

@RestController /* @Controller + @ResponseBody*/
public class UserController{}

2) 若是须要返回到指定页面,则须要用 @Controller配合视图解析器InternalResourceViewResolver才行。json

@Controller
public class PageController {
   /**
     * 返回项目明细jsp界面.
     */
    @RequestMapping("/projectCheck")
    public String projectCheck(){
       return"/html/business/project/projectCheck";
    }
}


若是须要返回JSON,XML或自定义mediaType内容到页面,则须要在对应的方法上加上@ResponseBody注解。app

@Controller
public class ProjectController{

  @RequestMapping(value="/addProject", method = RequestMethod.POST)
  //若返回json等内容到页面,则须要加@ResponseBody注解
  @ResponseBody
  public LogisticsResult addProject(@Valid ProjectDetail project,BindingResult result){
  }

}

参考:https://www.cnblogs.com/shuaifing/p/8119664.htmljsp

相关文章
相关标签/搜索