spring 請求引數的輸入 以及表單資料校驗
阿新 • • 發佈:2018-11-19
spring mvc 允許以多種方式將客戶端中的資料傳送到控制器的處理器方法中,包括以下幾種
查詢引數
表單引數
路徑引數
1. 查詢引數:
使用@RequstParam 註解 宣告引數名稱和型別 。一般來說 spring boot 現在支援直接使用型別和引數名稱 不需要使用註解
2. 路徑引數
將引數放入需要提交的url 路徑中 為了實現路徑引數, spring 允許我們在requestMapping 註解的路徑中使用佔位符 ( 大括號{} ) 路徑的其他部分與請求的路徑完全匹配,佔位符部分可以是任意值
格式為
@RequestMapping(value="/test/{name}") public void test(@PathVariable String name){ }
需要注意的是 ,佔位符的引數名稱 必須和方法的引數名相同
3. 表單引數
Spring MVC 提供了一種繫結機制,通過該機制可以從使用者請求中提取資料,然後將資料轉換為預定義的資料格式,最後對映到一個模型類,從而建立物件,SpingMVC 實現這種繫結機制非常簡單,只需要請求引數名稱和java 類的屬性相匹配即可,從而使Web 開發變得非常簡單明瞭
所以在接受表單引數時 ,使用一個java類來接受前臺form 表單裡面的資料 ,通過post 方法將資料 提交到後臺 需要注意的是 ,前臺form 表單中 ,提交的HTML 元素的 name 需要和 後臺的實體類的屬性一一對應
表單引數的校驗
spring 提供表單校驗的方法 通過使用註解(這些註解來源於JSR-303 規範 ,它詳細規定了 bean 的校驗功能。 ),將註解放在類的屬性上,從而限制屬性的值
public class User {
@NotNull
@Size(min = 1,max = 22)
private String name;
@Min(0) @Max(200)
private Integer age;
}
為了使校驗功能執行起來,需要新增一些內容,首先 , 控制器需要宣告在表單提交時, 它希望得到一個合法的模型,在代表表單的引數上新增一個 Valid 註解 就可以實現該功能 同時 ,使用BindingResult 來接收引數是否錯誤的判斷
@RequestMapping(value = "add",method = RequestMethod.POST)
@ResponseBody
public String add(@Valid User user , BindingResult bindingResult){
if (bindingResult.hasErrors()){
//這裡可以進行自定義操作
System.out.println(bindingResult);
}
System.out.println(user.toString());
return "add user success";
}