1. 程式人生 > >spring 請求引數的輸入 以及表單資料校驗

spring 請求引數的輸入 以及表單資料校驗

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";
    }