public class ContentNegotiationConfigurer extends ObjectSE
ContentNegotiationManager
を作成し、1 つ以上の ContentNegotiationStrategy
インスタンスで構成します。5.0 の時点で、strategies(List)
を使用して正確な戦略を設定できます。
別の方法として、このビルダーのメソッドを使用してオンまたはオフにしたりカスタマイズしたりできる、以下で説明するデフォルトのセットに依存することもできます。
戦略が設定される順序は固定されています。オンまたはオフにのみできます。注 :URL ベースのコンテンツ型解決を使用する必要がある場合、クエリパラメーターの使用は、パス拡張の使用よりも単純であり、後者は URI 変数、パスパラメーター、URI デコードで課題を引き起こす可能性があるためです。favorPathExtension(boolean)
を false に設定するか、そうでなければ strategies(List)
を介して明示的に使用する戦略を設定することを検討してください。
コンストラクターと説明 |
---|
ContentNegotiationConfigurer(ServletContextEE servletContext) ServletContext EE を使用したクラスコンストラクター。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ContentNegotiationConfigurer(@Nullable ServletContextEE servletContext)
ServletContext
EE を使用したクラスコンストラクター。public void strategies(@Nullable ListSE<ContentNegotiationStrategy> strategies)
注意 : このメソッドの使用は、デフォルトの固定された戦略セットをカスタマイズするこのクラスの他のすべての setter の使用と相互に排他的です。詳細については、クラスレベルのドキュメントを参照してください。
strategies
- 使用する戦略 public ContentNegotiationConfigurer favorPathExtension(boolean favorPathExtension)
デフォルトでは、これは true
に設定されます。その場合、/hotels.pdf
のリクエストは、"Accept" ヘッダーに関係なく "application/pdf"
のリクエストとして解釈されます。
public ContentNegotiationConfigurer mediaType(StringSE extension, MediaType mediaType)
パス拡張戦略は、ServletContext.getMimeType(java.lang.String)
EE および MediaTypeFactory
を使用してパス拡張を解決しようとします。この動作を変更するには、useRegisteredExtensionsOnly(boolean)
プロパティを参照してください。
extension
- 見上げる鍵 mediaType
- メディア型 mediaTypes(Map)
, replaceMediaTypes(Map)
public ContentNegotiationConfigurer mediaTypes(@Nullable MapSE<StringSE,MediaType> mediaTypes)
public ContentNegotiationConfigurer replaceMediaTypes(MapSE<StringSE,MediaType> mediaTypes)
mediaType(java.lang.String, org.springframework.http.MediaType)
に似ていますが、既存のマッピングを置き換えるためのものです。public ContentNegotiationConfigurer ignoreUnknownPathExtensions(boolean ignore)
false
に設定すると、一致するものがなければ HttpMediaTypeNotAcceptableException
になります。 デフォルトでは、これは true
に設定されています。
@DeprecatedSE public ContentNegotiationConfigurer useJaf(boolean useJaf)
useRegisteredExtensionsOnly(boolean)
を推奨 favorPathExtension(boolean)
が設定されている場合、このプロパティは、パス拡張を特定の MediaType に解決するために JAF(Java Activation フレームワーク)の使用を許可するかどうかを決定します。public ContentNegotiationConfigurer useRegisteredExtensionsOnly(boolean useRegisteredExtensionsOnly)
favorPathExtension
が設定されている場合、このプロパティは、登録された MediaType
マッピングのみを使用して特定の MediaType へのパス拡張を解決するかどうかを決定します。 デフォルトでは、これは設定されていません。その場合、PathExtensionContentNegotiationStrategy
は使用可能な場合はデフォルトを使用します。
public ContentNegotiationConfigurer favorParameter(boolean favorParameter)
media type mappings
を登録する必要があります。 デフォルトでは、これは false
に設定されています。
public ContentNegotiationConfigurer parameterName(StringSE parameterName)
favorParameter(boolean)
がオンのときに使用するクエリパラメーター名を設定します。 デフォルトのパラメーター名は "format"
です。
public ContentNegotiationConfigurer ignoreAcceptHeader(boolean ignoreAcceptHeader)
デフォルトでは、この値は false
に設定されています。
public ContentNegotiationConfigurer defaultContentType(MediaType... defaultContentTypes)
指定されたメディア型のいずれもサポートしない宛先が存在する場合、最後に MediaType.ALL
を追加することを検討してください。
デフォルトでは、これは設定されていません。
public ContentNegotiationConfigurer defaultContentTypeStrategy(ContentNegotiationStrategy defaultStrategy)
ContentNegotiationStrategy
を設定します。デフォルトでは、これは設定されていません。
protected ContentNegotiationManager buildContentNegotiationManager()
ContentNegotiationManager
を構築します。ContentNegotiationManagerFactoryBean.getObject()