Controller層方法傳參和返回字符串


1:controller層方法傳參


pic-1590654577197.png

在上圖的方法中,需要調用這個方法的話,那么a參數是必傳的,b和c無所謂傳不傳,甚至是你傳一個方法中沒有的參數d也是可以正常調用該方法的。總之是有類似上面的注解@RequestParam的參數必傳,其余的看邏輯需求(一般邏輯寫了參數的,那么都會傳參,不會出現很奇怪的傳參方式)。

有關@RequestParam的總結:
    @RequestParam(value="a",required = true) 這個注解的后面多加了個參數required,required直譯過來是需要,這里我們翻譯成,是否需要? 然后這個參數后面等於true,那就是說這個參數a是必傳的。
    其實@RequestParam(value="a",required = true)和@RequestParam(value="a")是一樣的意思,都是a參數必傳的意思,不傳報錯。
    當然,有了required = true,那么自然就有 required = false。很顯然,required = false是參數非必傳。@RequestParam(value="a",required = false) 和在方法形參前不寫該注解是一樣的意思。

補充:2019/12/20
@RequestParam(value="a",required = false) 和在方法形參前不寫該注解是一樣的意思。都可以不傳參,但是前提是該參數是不為基本數據類型,否則會報錯。如下:


pic-1589441462888.png

不能將參數a轉為null處理,所以我這里猜想,要是沒有傳參的話,那么會給一個默認值為null,但是基本數據類型不能強轉為null,所以報錯。還需要注意的是,8個基本數字類型,**除了boolean之外,都會報錯,**但是boolean這個基本數字類型就不會。(本人親測)


pic-1590654577198.png

如上圖所示參數,直接訪問/gm,在頁面可以正常返回“干嘛”字樣。

2:Controller層方法返回的字符串
之前在項目里,看見controller層的返回類型是個字符串,但是實際跳轉的時候是跳轉到具體某個頁面的。都是似懂非懂,現在來總結下:

1:就是直接返回字符串的(在瀏覽器頁面顯示具體字符串)
    后台方法的寫法是:

上圖中的@ResponseBody注解是返回JSON格式,這里要把字符串在瀏覽器頁面顯示出來,這個注解必須加上。
瀏覽器頁面訪問並傳個a參數過去效果:

2:返回字符串跳轉到頁面的。
首先需要在springboot項目的application.properties或者是application.yml文件配置視圖解析器,如圖:

前綴是/static,后綴是.html。因為springboot的配置文件根路徑是從resources目錄開始的,新建一個文件名為a.html的靜態頁面。如下圖:

后台方法的寫法如下:

需要注意的是需要返回頁面,那么就必須不能在這個方法上面加上@ResponseBody或者是不能在這個Controlle層的類上寫@RestController注解。
其實,這里返回的字符串“a”,實際上是返回了“/static/a.html”;
在瀏覽器里訪問/testOne方法的結果如下:

最后:Controller層上的類注解@Controller + @ResponseBody = @RestController

補充: 2019/11/04     

今天和往常一樣配置視圖解析器,想要跳轉某個頁面,可是奇怪的事發生了,總是跳轉不了,報錯如下:

  

  最后解決辦法是在application.properties配置文件里添加一個靜態資源路徑,如下圖:

  

這里的靜態資源是放在resources的static下面。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM