關(guān)于@Controller和@Restcontroller的那點(diǎn)奇葩事
@Controller和@Restcontroller
直接甩正事
我要返回如下頁(yè)面路徑:
控制層的注解為上圖時(shí),結(jié)果正常:
但注解的@Controller若是變?yōu)榱薂Restcontroller了呢
結(jié)果如下:
后來(lái)的經(jīng)驗(yàn)總結(jié)
RestController相當(dāng)于Controller+ResponseBody注解
如果只是使用@RestController注解Controller,則Controller中的方法無(wú)法返回jsp頁(yè)面,或者h(yuǎn)tml,配置的視圖解析器 ,也就是相當(dāng)于在方法上面自動(dòng)加了ResponseBody注解,所以沒(méi)辦法跳轉(zhuǎn)并傳輸數(shù)據(jù)到另一個(gè)頁(yè)面,所以InternalResourceViewResolver也不起作用,返回的內(nèi)容就是Return 里的內(nèi)容,即數(shù)據(jù)直接甩在當(dāng)前請(qǐng)求的頁(yè)面上,適用于ajax異步請(qǐng)求。
如果需要返回到指定頁(yè)面,則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行
@Controller和@RestController的區(qū)別?
官方文檔:
@RestController is a stereotype annotation that combines @ResponseBody and @Controller.
意思是:
@RestController注解相當(dāng)于@ResponseBody + @Controller合在一起的作用。
1)如果只是使用@RestController注解Controller,則Controller中的方法無(wú)法返回jsp頁(yè)面,配置的視圖解析器InternalResourceViewResolver不起作用,返回的內(nèi)容就是Return 里的內(nèi)容。
例如:本來(lái)應(yīng)該到success.jsp頁(yè)面的,則其顯示success.
2)如果需要返回到指定頁(yè)面,則需要用 @Controller配合視圖解析器InternalResourceViewResolver才行。
3)如果需要返回JSON,XML或自定義mediaType內(nèi)容到頁(yè)面,則需要在對(duì)應(yīng)的方法上加上@ResponseBody注解。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
java基于遞歸算法實(shí)現(xiàn)漢諾塔問(wèn)題實(shí)例
這篇文章主要介紹了java基于遞歸算法實(shí)現(xiàn)漢諾塔問(wèn)題,結(jié)合具體實(shí)例形式分析了java遞歸算法的實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下2017-07-07java中url漢字編碼互相轉(zhuǎn)換實(shí)例
這篇文章介紹了java中url漢字編碼互相轉(zhuǎn)換實(shí)例,有需要的朋友可以參考一下2013-10-10Eclipse 項(xiàng)目出現(xiàn)錯(cuò)誤(紅色嘆號(hào))解決方法
這篇文章主要介紹了Eclipse 項(xiàng)目出現(xiàn)錯(cuò)誤(紅色嘆號(hào))解決方法的相關(guān)資料,需要的朋友可以參考下2017-06-06淺談java字符串比較到底應(yīng)該用==還是equals
這篇文章主要介紹了淺談java字符串比較到底應(yīng)該用==還是equals,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Java實(shí)戰(zhàn)寵物店在線交易平臺(tái)的實(shí)現(xiàn)流程
讀萬(wàn)卷書不如行萬(wàn)里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+Springboot+maven+Mysql+FreeMarker實(shí)現(xiàn)一個(gè)寵物在線交易系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平2022-01-01記一次Maven項(xiàng)目改造成SpringBoot項(xiàng)目的過(guò)程實(shí)踐
本文主要介紹了Maven項(xiàng)目改造成SpringBoot項(xiàng)目的過(guò)程實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03Java多線程實(shí)戰(zhàn)之交叉打印的兩種方法
今天小編就為大家分享一篇關(guān)于Java多線程實(shí)戰(zhàn)之交叉打印的兩種方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-02-02