RequestParamのように@RequestBodyアノテーションオプション(required = falseなど)を設定する方法はありますか?@RequestBody optional(例:required = false)
コードの主なパスはPOSTです。しかし、デバッグのためにブラウザの基本的なhttpリクエストを介して基本的なGETリクエストをサポートしたいと思います。しかし、私がそれをやろうとすると、415のサポートされていないメディアエラーが発生します。
RequestParamのように@RequestBodyアノテーションオプション(required = falseなど)を設定する方法はありますか?@RequestBody optional(例:required = false)
コードの主なパスはPOSTです。しかし、デバッグのためにブラウザの基本的なhttpリクエストを介して基本的なGETリクエストをサポートしたいと思います。しかし、私がそれをやろうとすると、415のサポートされていないメディアエラーが発生します。
コードの主なパスはPOSTです。しかし、私はこれを行うには、
@RequestMapping
注釈、例えばのmethod
属性を使用
もブラウザ経由での基本的なGETリクエストをサポートしたいと思います
@RequestMapping(value="/myPath", method=RequestMethod.GET)
public String doSomething() {
...
}
@RequestMapping(value="/myPath", method=RequestMethod.POST)
public String doSomething(@RequestBody payload) {
...
}
@RequestBody注釈オプションを作るための方法(例えば=偽必要)RequestParamがサポートするようにはありますか?要するに
、私は、そう を信じていませんが、入力ストリームから手動でそれを行うことができます。
@Autowired
private MappingJacksonHttpMessageConverter mappingJacksonHttpMessageConverter;
RestResponse<String> updateViewingCard(@PathVariable(value = "custome") String customer,
@RequestParam(value = "p1", required = false) String p1,
@RequestParam(value = "p2", required = false) String p2,
// @RequestBody MyPayloadType payload, Can't make this optional
HttpServletRequest request,
HttpServletResponse response) throws... {
MyPayloadType payload = null;
if (0 < request.getContentLength()) {
payload = this.mappingJacksonHttpMessageConverter.getObjectMapper().readValue(request.getInputStream(),
MyPayloadType.class);
}
@RequestBodyが明らかになりました春3.2M1のようオプションとして設定することができます:https://jira.springsource.org/browse/SPR-9239
しかし、私はこれをSpring 3.2M2でテストし、nullを渡す代わりにrequired = falseを設定した後でもnullボディを送信する際に例外をスローしました。この問題は確認され、修正されました。3.2 RC1
の最速の修正方法のスケジュールです。デフォルトの動作を変更するためにSpringに追加する必要のある設定を見つけることができませんでした。 Spring3.2を使用していて、GETリクエストを送信するとエラー415が発生しました。これはfastesソリューションです。 – tbraun