1:controller層方法傳參

在上圖的方法中,需要調用這個方法的話,那么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) 和在方法形參前不寫該注解是一樣的意思。都可以不傳參,但是前提是該參數是不為基本數據類型,否則會報錯。如下:

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

如上圖所示參數,直接訪問/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下面。