Spring Boot/Controller/パラメータ/入力チェック

Spring Boot/Controller/パラメータ/入力チェック

所謂 バリデータ(Validator) とかいう処理。

まずこのようなコントローラがあったとする。

@Controller
@RequestMapping("/hoge")
public class HogeController {
    @RequestMapping("/piyo/{id}")
    public String piyo(@ModelAttribute PiyoForm f, Model m) {
    	m.addAttribute("v1", f.getId());
        return "hoge/piyo";
    }
}

Form はこんな感じ

public class PiyoForm{
    private String hoge;
    public void setId(String v){
        this.hoge = v;
    }
    public void getId(){
        return this.hoge;
    }
}

ではこのパラメータを必須にしてみる Form の受けたメンバにアノテーション指定する

public class PiyoForm{
    @NotNull
    private String hoge;
    public void setId(String v){
        this.hoge = v;
    }
    public void getId(){
        return this.hoge;
    }
}

コントローラー側でエラーの発生を捕捉する

@Controller
@RequestMapping("/hoge")
public class HogeController {
    @RequestMapping("/piyo/{id}")
    public String piyo(@Validated @ModelAttribute PiyoForm f, Model m, BindingResult br) {
        if(br.hasErrors()){
            return "hoge/piyoerror":
        }
    	m.addAttribute("v1", f.getId());
        return "hoge/piyo";
    }
}
java/spring/spring_boot/controller/input_params/validator.txt · 最終更新: 2021-06-25 14:12 by ore