###前提・実現したいこと
springの@InitBinderで定義したメソッドで、JSON形式のPOSTリクエストからフィールドの名と値を取得したい。
###該当のソースコード
@InitBinder
public void bindRequest(WebDataBinder binder, WebRequest request) {
// リクエストパラメーターをMapにバインド.
final Map<String, String> multiParams = new HashMap<>();
// multiParams.put("field1", request.getParameter("field1"));
↑
ここの箇所ですが、JSON形式のリクエストの場合、getParameterで取得ができません。
final MutablePropertyValues pvs = new MutablePropertyValues(); pvs.add("multiParams", multiParams); binder.bind(pvs);
###制約
@RequestMappingのメソッドで@RequestBodyを指定すれば、springが自動でバインドしてくれることは知っているのですが、今回の要件では、@RequestBodyでの定義ができないため、@InitBinderにて処理をさせています。
###補足情報(言語/FW/ツール等のバージョンなど)
Spring 4.2.6
java8
色々、ググッたのですが、あまりピンとこず、質問を上げさてもらいました。
他により良い方法等も含め、ご教授をお願いします。