Spring Bootのバリデーションは属性つけるだけで簡単にできます。
5.5. 入力チェック — TERASOLUNA Global Framework Development Guideline 1.0.0.publicreview documentation
上記のページの最後に書いてある内容なのですが、このアノテーションはnull値は基本的にスルーしてくれるのですが、Spring Bootは未入力の項目はnullじゃなくて空文字をせっていしてくれます。そのせいで、未入力はスルーしつつ値が入力されてたら検証したいというシナリオを達成できないのがデフォルトの動きです。
そんなときは、以下のようなメソッドをControllerに生やせばOKみたいです。
@InitBinderpublicvoid initBinder(WebDataBinder binder) { // 未入力のStringをnullに設定する binder.registerCustomEditor(String.class, new StringTrimmerEditor(true)); }
これで未入力の項目はnullになる。