前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。
@MVC另外一個特性是其提取和解析請求參數的能力。讓我們繼續重構上面的方法,并在其中添加@RequestParam注解:?
@RequestMapping("/accounts/show")?
public void show(@RequestParam("number") String number, Map<String, Object> model) {?
??? model.put("account", accountRepository.findAccount(number));?
}?
??? 這里@RequestParam注解可以用來提取名為“number”的String類型的參數,并將之作為輸入參數傳入。 @RequestParam支持類型轉換,還有必需和可選參數。類型轉換目前支持所有的基本Java類型,你可通過定制的PropertyEditors 來擴展它的范圍。下面是一些例子,其中包括了必需和可選參數:?
@RequestParam(value="number", required=false) String number?
@RequestParam("id") Long id?
@RequestParam("balance") double balance?
@RequestParam double amount?
?
??? 注意,最后一個例子沒有提供清晰的參數名。當且僅當代碼帶調試符號編譯時,結果會提取名為“amount ”的參數,否則,將拋出IllegalStateException異常,因為當前的信息不足以從請求中提取參數。由于這個原因,在編碼時最好顯式的指定參數名。
?
三種寫法,test(String name),?
test(@RequestParam String name),?
test(@RequestParam("userName") String name),?
第一種如果沒有name 參數不會報錯,?
第二種沒有name 參數會報錯,(也可以設置required = false, 會自動尋找頁面中標簽name屬性值為“name”的參數。)
第三種跟第二種的區別是?請求的參數名userName轉換成方法的參數name
?