クラス RequestResponseBodyMethodProcessor
java.lang.ObjectSE
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver
org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor
- 実装されたすべてのインターフェース:
HandlerMethodArgumentResolver
,HandlerMethodReturnValueHandler
@RequestBody
でアノテーション付けされたメソッド引数を解決し、HttpMessageConverter
でリクエストまたはレスポンスの本文を読み書きすることにより、@ResponseBody
でアノテーション付けされたメソッドからの戻り値を処理します。@RequestBody
メソッド引数は、検証をトリガーするアノテーションが付けられている場合にも検証されます。検証が失敗した場合、MethodArgumentNotValidException
が発生し、DefaultHandlerExceptionResolver
が構成されていると、HTTP400 レスポンスステータスコードが生成されます。
- 導入:
- 3.1
- 作成者:
- Arjen Poutsma, Rossen Stoyanchev, Juergen Hoeller
フィールドサマリー
クラス org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver から継承されたフィールド
logger, messageConverters
コンストラクターのサマリー
コンストラクター説明RequestResponseBodyMethodProcessor
(ListSE<HttpMessageConverter<?>> converters) コンバーターのみを備えた基本コンストラクター。RequestResponseBodyMethodProcessor
(ListSE<HttpMessageConverter<?>> converters, ListSE<ObjectSE> requestResponseBodyAdvice) @RequestBody
メソッドの引数を解決するための完全なコンストラクター。RequestResponseBodyMethodProcessor
(ListSE<HttpMessageConverter<?>> converters, ContentNegotiationManager manager) コンバーターとContentNegotiationManager
を使用した基本コンストラクター。RequestResponseBodyMethodProcessor
(ListSE<HttpMessageConverter<?>> converters, ContentNegotiationManager manager, ListSE<ObjectSE> requestResponseBodyAdvice) @RequestBody
を解決し、@ResponseBody
を処理するための完全なコンストラクター。メソッドのサマリー
修飾子と型メソッド説明protected boolean
checkRequired
(MethodParameter parameter) void
handleReturnValue
(ObjectSE returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) 属性をモデルに追加し、ビューを設定するか、ModelAndViewContainer.setRequestHandled(boolean)
フラグをtrue
に設定して、レスポンスが直接処理されたことを示すことにより、指定された戻り値を処理します。protected <T> ObjectSE
readWithMessageConverters
(NativeWebRequest webRequest, MethodParameter parameter, TypeSE paramType) 指定されたリクエストから読み取ることにより、予想されるパラメーター型のメソッド引数値を作成します。resolveArgument
(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) 検証が失敗した場合、MethodArgumentNotValidException をスローします。boolean
supportsParameter
(MethodParameter parameter) 指定されたメソッドパラメーターがこのリゾルバーによってサポートされているかどうか。boolean
supportsReturnType
(MethodParameter returnType) 指定されたメソッドの戻り型がこのハンドラーでサポートされているかどうか。クラス org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor から継承されたメソッド
createOutputMessage, getProducibleMediaTypes, getProducibleMediaTypes, getReturnValueType, isResourceType, writeWithMessageConverters, writeWithMessageConverters
クラス org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver から継承されたメソッド
adaptArgumentIfNecessary, createInputMessage, getSupportedMediaTypes, isBindExceptionRequired, readWithMessageConverters, validateIfApplicable
コンストラクターの詳細
RequestResponseBodyMethodProcessor
コンバーターのみを備えた基本コンストラクター。@RequestBody
の解決に適しています。@ResponseBody
を処理するには、ContentNegotiationManager
も提供することを検討してください。RequestResponseBodyMethodProcessor
public RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters, @Nullable ContentNegotiationManager manager) コンバーターとContentNegotiationManager
を使用した基本コンストラクター。@RequestBody
を解決し、Request~
またはResponseBodyAdvice
なしで@ResponseBody
を処理するのに適しています。RequestResponseBodyMethodProcessor
public RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters, @Nullable ListSE<ObjectSE> requestResponseBodyAdvice) @RequestBody
メソッドの引数を解決するための完全なコンストラクター。@ResponseBody
を処理するには、ContentNegotiationManager
も提供することを検討してください。- 導入:
- 4.2
RequestResponseBodyMethodProcessor
public RequestResponseBodyMethodProcessor(ListSE<HttpMessageConverter<?>> converters, @Nullable ContentNegotiationManager manager, @Nullable ListSE<ObjectSE> requestResponseBodyAdvice) @RequestBody
を解決し、@ResponseBody
を処理するための完全なコンストラクター。
メソッドの詳細
supportsParameter
インターフェースからコピーされた説明:HandlerMethodArgumentResolver
指定されたメソッドパラメーターがこのリゾルバーによってサポートされているかどうか。- パラメーター:
parameter
- チェックするメソッドパラメーター- 戻り値:
- このリゾルバーが提供されたパラメーターをサポートする場合、
true
。それ以外の場合はfalse
supportsReturnType
インターフェースからコピーされた説明:HandlerMethodReturnValueHandler
指定されたメソッドの戻り型がこのハンドラーでサポートされているかどうか。- パラメーター:
returnType
- チェックするメソッドの戻り値の型- 戻り値:
- このハンドラーが提供された戻り値の型をサポートする場合、
true
。それ以外の場合はfalse
resolveArgument
@Nullable public ObjectSE resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer, NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) throws ExceptionSE 検証が失敗した場合、MethodArgumentNotValidException をスローします。- パラメーター:
parameter
- 解決するメソッドパラメーター。このパラメーターは、true
を返さなければならないHandlerMethodArgumentResolver.supportsParameter(org.springframework.core.MethodParameter)
に事前に渡されている必要があります。mavContainer
- 現在のリクエストの ModelAndViewContainerwebRequest
- 現在のリクエストbinderFactory
-WebDataBinder
インスタンスを作成するためのファクトリ- 戻り値:
- 解決された引数値、または解決できない場合は
null
- 例外:
HttpMessageNotReadableException
-RequestBody.required()
がtrue
であり、本文コンテンツがない場合、コンテンツを読み取るための適切なコンバーターがない場合。ExceptionSE
- 引数値の準備でエラーが発生した場合
readWithMessageConverters
@Nullable protected <T> ObjectSE readWithMessageConverters(NativeWebRequest webRequest, MethodParameter parameter, TypeSE paramType) throws IOExceptionSE, HttpMediaTypeNotSupportedException, HttpMessageNotReadableException クラスからコピーされた説明:AbstractMessageConverterMethodArgumentResolver
指定されたリクエストから読み取ることにより、予想されるパラメーター型のメソッド引数値を作成します。- オーバーライド:
- クラス
AbstractMessageConverterMethodArgumentResolver
のreadWithMessageConverters
- 型パラメーター:
T
- 作成される引数値の予想される型- パラメーター:
webRequest
- 現在のリクエストparameter
- メソッドパラメーター記述子 (null
の場合があります)paramType
- 作成される引数値の型- 戻り値:
- 作成されたメソッド引数値
- 例外:
IOExceptionSE
- リクエストからの読み取りが失敗した場合HttpMediaTypeNotSupportedException
- 適切なメッセージコンバーターが見つからない場合HttpMessageNotReadableException
checkRequired
handleReturnValue
public void handleReturnValue(@Nullable ObjectSE returnValue, MethodParameter returnType, ModelAndViewContainer mavContainer, NativeWebRequest webRequest) throws IOExceptionSE, HttpMediaTypeNotAcceptableException, HttpMessageNotWritableException インターフェースからコピーされた説明:HandlerMethodReturnValueHandler
属性をモデルに追加し、ビューを設定するか、ModelAndViewContainer.setRequestHandled(boolean)
フラグをtrue
に設定して、レスポンスが直接処理されたことを示すことにより、指定された戻り値を処理します。- パラメーター:
returnValue
- ハンドラーメソッドから返された値returnType
- 戻り値の型。この型は、true
を返さなければならないHandlerMethodReturnValueHandler.supportsReturnType(org.springframework.core.MethodParameter)
に事前に渡されている必要があります。mavContainer
- 現在のリクエストの ModelAndViewContainerwebRequest
- 現在のリクエスト- 例外:
IOExceptionSE
HttpMediaTypeNotAcceptableException
HttpMessageNotWritableException