@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

相關文章
相關標籤/搜索