@RestController 和 @Controller 的區別
@RestController註解,相當於@[email protected]兩個註解的結合,返回json資料不需要在方法前面加@ResponseBody註解了,但使用@RestController這個註解,就不能返回jsp,html頁面,檢視解析器無法解析jsp,html頁面
理解下面的註解哦。
@ResponseBody 表示該方法的返回結果直接寫入 HTTP response body 中,一般在非同步獲取資料時使用【也就是AJAX】,在使用 @RequestMapping後,返回值通常解析為跳轉路徑,但是加上 @ResponseBody 後返回結果不會被解析為跳轉路徑,而是直接寫入 HTTP response body 中。 比如非同步獲取 json 資料,加上 @ResponseBody 後,會直接返回 json 資料。@RequestBody 將 HTTP 請求正文插入方法中,使用適合的 HttpMessageConverter 將請求體寫入某個物件。
擼程式碼:
//@RestController @Controller @RequestMapping("falarmUser") public class FAlarmUserController { private static final Logger logger = LoggerFactory.getLogger(FAlarmUserController.class); @Autowired private FAlarmUserService fAlarmUserService; /** * 新增使用者 * @param userEntity * @return */ @PostMapping("addUser") public Object addUser(@RequestBody FAlarmUserEntity userEntity){ logger.info("新增成員的資訊 : "+userEntity.toString()); Response res = new Response(); res = fAlarmUserService.addUser(userEntity); return res; }
}
Response 類:
@JsonInclude(value = JsonInclude.Include.NON_EMPTY) public class Response implements Serializable { private static final long serialVersionUID = 1L; private Integer code; private Object data; private String message; public Response() { super(); } public Integer getCode() { return code; } public void setCode(Integer code) { this.code = code; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } }
如果是用@RestController ,請求之後返回的結果如下。
如果使用 @Controller,返回結果 如下;
@Controller 註解不能將結果寫入到 HTTP response body 中,因而無法正常顯示。
相關推薦
RestController和Controller的區別
知識點:@RestController註解相當於@ResponseBody + @Controller合在一起的作用。 1) 如果只是使用@RestController註解Controller,則Controller中的方法無法返回jsp頁面,或者html,配置的檢視解析器 InternalRe
關於@RestController 和 @Controller 的區別
@Controller和@RestController的區別? 官方文件:@RestController is a stereotype annotation that combines @ResponseBody and @Controller.意思是:@RestController註解相當於
@RestController 和 @Controller的區別
@RestController是@ResponseBody + @Controller合體,當你在這個controller中方法只是想返回一個頁面時,就不能用@RestController,因為它會把你的返回值當作資料返回,而不是頁面名字,所以這時候就只能用@Controll
@RestController和@Controller的區別
使用@Controller 註解,在對應的方法上,檢視解析器可以解析return 的jsp,html頁面,並且跳轉到相應頁面 若返回json等內容到頁面,則需要加@ResponseBody註解。 如果你的程式碼寫的如下: @Controller @Request
@RestController 和 @Controller 的區別
@RestController註解,相當於@[email protected]兩個註解的結合,返回json資料不需要在方法前面加@ResponseBody註解了,但使用@RestController這個註解,就不能返回jsp,html頁面,檢視解析器無法解析jsp,
RestController 和Controller的區別
在SpringMVC中,經常會使用註解 的方式來定義一個控制器。 最常用的有控制器註解@Controller,可以在控制器類中寫各種業務方法,然後返回資料,一般資料的返回分成兩大種 頁面 返回靜態頁面 ModelAndView 返回頁面和相應資料
springmvc中controller 使用@RestController 和 @Controller 返回結果的區別
springmvc中返回結果為return中的內容的話可以使用@RestController 或者@[email protected], @RestController註解相當於@ResponseBody + @Controller合在一起的作用。 如果想要頁
SpringBoot 中 @RestController 和 @Controller 的區別
book 兩種 col ted method ping wire json 區別 1 - 在springboot中,@RestController 相當於 @Controller + @ResponseBody;2 - 即在Controller類中,若想返回jsp或html
@RestController和@Controller
[email protected]註解相當於@ResponseBody + @Controller,我們都知道,加上@ResponseBody意思是返回json或xml到前臺頁面,也就是return裡的東西。這時候,即使你在檢視解析器InternalResourceViewRe
restcontroller與controller區別
知識點:@RestController註解相當於@ResponseBody + @Controller合在一起的作用。 1) 如果只是使用@RestController註解Controller,則Controller中的方法無法返回jsp頁面,或者html,配置的檢視解析器 InternalRe
@RestController與@Controller區別
@RestController是@ResponseBody + @Controller合體 @ResponseBody:加在方法上、表示返回json格式/xml資料 @Controller:加上mvc中c上面的註解、要想返回資料、要配合檢視解析器&nb
關於directive裡的link和controller區別
1、執行順序:先controller後link 2、何時使用controller:一般場景下都不想要使用controller,只需要把邏輯寫在link中就可以了;用controller的場景就是該指令(假設為a)會被其他指令(假設為b)require的時候,這樣就會在b指令
前後端關係,restful風格,restcontroller與controller區別
restful風格簡單的理解,restful是一種url風格,或者說是規範,在以前的網址中,假定一個業務,取得資料網址為http://test/get ,新增資訊的網址為http://test/post ,類似這樣。但是在restful風格中,取得資料和新增資料的網址均應為h
RestController、Controller區別
1) 如果只是使用@RestController註解Controller,則Controller中的方法無法返回jsp頁面,或者html,配置的檢視解析器 InternalResourceViewResolver不起作用,返回的內容就是Return 裡的內容。2) 如果需要返
關於@RestController和@Controller
這兩天在實現返回json資料時遇到的問題,action執行完後預設從url中獲取欄位然後通過檢視解析器去查詢.jsp檔案,然後顯示找不到該檔案。 後來找到了原因:之前使用了註解@controller。而為了返回response物件,應使用@Rest
【spring Boot】Spring中@Controller和@RestController之間的區別
處理 public 不同 esp 舉例 rest control tro adding spring Boot入手的第一天,看到例子中的@RestController ............. 相同點:都是用來表示Spring某個類的是否可以接收HTTP請求 不同點:@C
@RestController註解和@Controller註解的區別
在學習的過程中發現這個問題,寫篇部落格記錄一下,方便以後查閱。 @RestController註解是@Controller和@ResponseBody註解的結合。 首先說明: @Controller註解表明這是一個控制器類 在方法上加註解@ResquestMapping(v
Spring中@Controller和@RestController之間的區別
1. Controller, RestController的共同點 都是用來表示Spring某個類的是否可以接收HTTP請求 2. Controller, RestController的不同點 @Controller標識一個Spring類是Spring
【死磕springboot2.0】@restcontroller與 @controller的 區別;
@restcontroller *原始碼如下:其包含@Controller 、@ResponseBody * @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Controller
spring boot @Controller與@RestController之間的區別
共同點 都是用來表示Spring某個類是否可以接收HTTP請求。 不同點 @Controller標識一個spring類是Spring MVC controller處理器。 @RestController是@Controller和@ResponseBody的結合體。 @Respon