Springのコントローラでリクエストにnullを許可する

こんにちは、さるまりんです。

Javaの小ネタです。

最近、いろいろ準備をしておりまして、そのプログラムをJavaでSpringを使って書いています。

思いっきり基本的なことだと思うのですが知らなかったのでメモしておきます。

タイトルのままのことなんですが、コントローラーでインプットを受け取るときに全く空っぽの(正確には空っぽとnullは違うのですが)のリクエストを送るとエラーとなってしまってまいます。

コントローラーのメソッドはこんな感じで書いてました。POSTInputClassをリクエストパラメタとして受け取る/sampleというアクションです。

@RequstMapping(path = "/sample", method=RequestMethod.POST)
public String sample(@RequestBody InputClass request)

これだとデフォルトでrequestが必須になってしまうんですね。

これを必須ではないようにするには@RequestBodyアノテーションのrequired属性をfalseにします。

@RequstMapping(path = "/sample", method=RequestMethod.POST)
public String sample(@RequestBody(required = false) InputClass request)

こうするとnullが許可されてエラーとならないようになります。

Spring始めたところですが便利ですね〜。アノテーションだけでいろんなことが実装できるのでいずれことあたりをまとめていきたいと思います。

読んでくださってありがとうございました。

それではまた!