クラス FreeMarkerView
- 実装されたすべてのインターフェース:
Aware
、BeanNameAware
、InitializingBean
、ApplicationContextAware
、View
View
実装。 アプリケーションコンテキストでアクセス可能な FreeMarkerConfigurer
などの単一の FreeMarkerConfig
オブジェクトに依存します。または、FreeMarker Configuration
は、setConfiguration(freemarker.template.Configuration)
を介してこのクラスに直接設定できます。
url
プロパティは、FreeMarkerConfigurer の templateLoaderPath
に対する FreeMarker テンプレートの位置です。
メモ: Spring の FreeMarker サポートには FreeMarker 2.3 以上が必要です。
- 導入:
- 5.0
- 作成者:
- Rossen Stoyanchev, Sam Brannen
フィールドサマリー
フィールド修飾子と型フィールド説明static final StringSE
テンプレートモデルのRequestContext
インスタンスの属性名。Spring のマクロで使用可能 — たとえば、BindStatus
オブジェクトの作成用。クラス org.springframework.web.reactive.result.view.AbstractView から継承されたフィールド
logger, REQUEST_DATA_VALUE_PROCESSOR_BEAN_NAME
インターフェース org.springframework.web.reactive.result.view.View から継承されたフィールド
BINDING_CONTEXT_ATTRIBUTE
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明void
protected FreeMarkerConfig
ApplicationContext
でFreeMarkerConfig
オブジェクトを自動検出します。boolean
checkResourceExists
(LocaleSE locale) このビューに使用される FreeMarker テンプレートが存在し、有効であることを確認してください。protected freemarker.template.Configuration
このビューで使用される FreeMarkerConfiguration
を取得します。protected StringSE
FreeMarker テンプレートのエンコードを取得します。getModelAttributes
(MapSE<StringSE, ?> model, ServerWebExchange exchange) Spring FreeMarker マクロで使用するRequestContext
を潜在的に公開し、このメソッドの継承された実装に委譲することにより、レンダリングに使用するモデルを準備します。protected freemarker.template.ObjectWrapper
設定された FreeMarkerObjectWrapper
を取得します。指定されていない場合はデフォルトのラッパーを取得します。protected freemarker.template.Template
getTemplate
(LocaleSE locale) 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。protected freemarker.template.SimpleHash
getTemplateModel
(MapSE<StringSE, ObjectSE> model, ServerWebExchange exchange) 指定されたモデルマップの FreeMarker テンプレートモデルを作成します。protected reactor.core.publisher.Mono<freemarker.template.Template>
lookupTemplate
(LocaleSE locale) このビューによってレンダリングされる、指定されたロケールの FreeMarker テンプレートを取得します。protected freemarker.template.Configuration
実際の使用のために FreeMarkerConfiguration
を取得します。protected reactor.core.publisher.Mono<VoidSE>
renderInternal
(MapSE<StringSE, ObjectSE> renderAttributes, MediaType contentType, ServerWebExchange exchange) ビューを実際にレンダリングするには、サブクラスでこのメソッドを実装する必要があります。reactor.core.publisher.Mono<BooleanSE>
resourceExists
(LocaleSE locale) このビューに使用される FreeMarker テンプレートが存在し、有効であることを確認してください。void
setConfiguration
(freemarker.template.Configuration configuration) このビューで使用される FreeMarkerConfiguration
を設定します。void
setEncoding
(StringSE encoding) FreeMarker テンプレートファイルのエンコーディングを設定します。void
setExposeSpringMacroHelpers
(boolean exposeSpringMacroHelpers) "springMacroRequestContext" という名前で、Spring のマクロライブラリが使用するRequestContext
を公開するかどうかを設定します。クラス org.springframework.web.reactive.result.view.AbstractUrlBasedView から継承されたメソッド
getUrl, setUrl, toString
クラス org.springframework.web.reactive.result.view.AbstractView から継承されたメソッド
createRequestContext, formatViewName, getApplicationContext, getBeanName, getDefaultCharset, getRequestContextAttribute, getRequestDataValueProcessor, getSupportedMediaTypes, obtainApplicationContext, render, resolveAsyncAttributes, setApplicationContext, setBeanName, setDefaultCharset, setRequestContextAttribute, setSupportedMediaTypes
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.web.reactive.result.view.View から継承されたメソッド
isRedirectView
フィールドの詳細
SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE
テンプレートモデルのRequestContext
インスタンスの属性名。Spring のマクロで使用可能 — たとえば、BindStatus
オブジェクトの作成用。- 導入:
- 5.2
- 関連事項:
コンストラクターの詳細
FreeMarkerView
public FreeMarkerView()
メソッドの詳細
setConfiguration
このビューで使用される FreeMarkerConfiguration
を設定します。通常、このプロパティは直接設定されません。代わりに、FreeMarker 構成を取得するために使用される Spring アプリケーションコンテキストで単一の
FreeMarkerConfig
が期待されます。getConfiguration
このビューで使用される FreeMarkerConfiguration
を取得します。obtainConfiguration
protected freemarker.template.Configuration obtainConfiguration()実際の使用のために FreeMarkerConfiguration
を取得します。- 戻り値:
- FreeMarker 構成 (非
null
) - 例外:
IllegalStateExceptionSE
-Configuration
オブジェクトセットがない場合- 関連事項:
setEncoding
FreeMarker テンプレートファイルのエンコーディングを設定します。デフォルトでは、
FreeMarkerConfigurer
は FreeMarker 構成のデフォルトのエンコードを "UTF-8" に設定します。すべてのテンプレートが共通のエンコーディングを共有している場合、テンプレートごとではなく、FreeMarkerConfiguration
でエンコーディングを指定することをお勧めします。getEncoding
FreeMarker テンプレートのエンコードを取得します。setExposeSpringMacroHelpers
public void setExposeSpringMacroHelpers(boolean exposeSpringMacroHelpers) "springMacroRequestContext" という名前で、Spring のマクロライブラリが使用するRequestContext
を公開するかどうかを設定します。デフォルトは
true
です。Spring の FreeMarker のデフォルトマクロに必要です。Spring ヘルパーマクロを利用する場合を除き、これは HTML フォームを使用するテンプレートには必要ないことに注意してください。
- 導入:
- 5.2
- 関連事項:
afterPropertiesSet
インターフェースからコピーされた説明:InitializingBean
すべての Bean プロパティを設定し、BeanFactoryAware
、ApplicationContextAware
などを満たした後、包含BeanFactory
によって呼び出されます。このメソッドにより、Bean インスタンスは、すべての Bean プロパティが設定されたときに、その全体的な構成の検証と最終的な初期化を実行できます。
- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
- オーバーライド:
- クラス
AbstractUrlBasedView
のafterPropertiesSet
- 例外:
ExceptionSE
- 構成の誤り(必須プロパティの設定の失敗など)の場合、またはその他の理由で初期化が失敗した場合
autodetectConfiguration
ApplicationContext
でFreeMarkerConfig
オブジェクトを自動検出します。- 戻り値:
- このビューに使用する
FreeMarkerConfig
インスタンス - 例外:
BeansException
-FreeMarkerConfig
インスタンスが見つからなかった場合- 関連事項:
checkResourceExists
このビューに使用される FreeMarker テンプレートが存在し、有効であることを確認してください。オーバーライドして動作をカスタマイズできます。たとえば、複数のテンプレートを単一のビューにレンダリングする場合などです。
- 次で指定:
- クラス
AbstractUrlBasedView
のcheckResourceExists
- パラメーター:
locale
- 探している希望のロケール- 戻り値:
- リソースが存在する場合は
false
、存在しないことがわかっている場合はfalse
- 例外:
ExceptionSE
- リソースは存在するが無効である場合 (たとえば解析できませんでした)
resourceExists
このビューに使用される FreeMarker テンプレートが存在し、有効であることを確認してください。オーバーライドして動作をカスタマイズできます。たとえば、複数のテンプレートを単一のビューにレンダリングする場合などです。
- オーバーライド:
- クラス
AbstractUrlBasedView
のresourceExists
- パラメーター:
locale
- 探している希望のロケール- 戻り値:
- リソースが存在する場合は
false
、存在しないことがわかっている場合はfalse
- 導入:
- 6.1
getModelAttributes
protected reactor.core.publisher.Mono<MapSE<StringSE,ObjectSE>> getModelAttributes(@Nullable MapSE<StringSE, ?> model, ServerWebExchange exchange) Spring FreeMarker マクロで使用するRequestContext
を潜在的に公開し、このメソッドの継承された実装に委譲することにより、レンダリングに使用するモデルを準備します。renderInternal
protected reactor.core.publisher.Mono<VoidSE> renderInternal(MapSE<StringSE, ObjectSE> renderAttributes, @Nullable MediaType contentType, ServerWebExchange exchange) クラスからコピーされた説明:AbstractView
ビューを実際にレンダリングするには、サブクラスでこのメソッドを実装する必要があります。- 次で指定:
- クラス
AbstractView
のrenderInternal
- パラメーター:
renderAttributes
- 静的な属性よりも動的な値が優先される、結合された出力マップ(非null
)contentType
- レンダリングするために選択されたコンテンツ型。サポートされているメディア型のいずれかと一致する必要がありますexchange
- 現在の交換- 戻り値:
- レンダリングが成功したときと成功したかどうかを表す
Mono
getTemplateModel
protected freemarker.template.SimpleHash getTemplateModel(MapSE<StringSE, ObjectSE> model, ServerWebExchange exchange) 指定されたモデルマップの FreeMarker テンプレートモデルを作成します。デフォルトの実装は
SimpleHash
を構築します。- パラメーター:
model
- レンダリングに使用するモデルexchange
- 現在の交換- 戻り値:
SimpleHash
またはそのサブクラスとしての FreeMarker テンプレートモデル
getObjectWrapper
protected freemarker.template.ObjectWrapper getObjectWrapper()設定された FreeMarkerObjectWrapper
を取得します。指定されていない場合はデフォルトのラッパーを取得します。- 関連事項:
Configurable.getObjectWrapper()
getTemplate
@DeprecatedSE(since="6.1", forRemoval=true) protected freemarker.template.Template getTemplate(LocaleSE locale) throws IOExceptionSE 非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。6.1 以降、lookupTemplate(Locale)
が優先され、6.2 で削除される予定このビューでレンダリングされる、指定されたロケールの FreeMarker テンプレートを取得します。デフォルトでは、"url" Bean プロパティで指定されたテンプレートが取得されます。
- パラメーター:
locale
- 現在のロケール- 戻り値:
- レンダリングする FreeMarker テンプレート
- 例外:
IOExceptionSE
lookupTemplate
このビューによってレンダリングされる、指定されたロケールの FreeMarker テンプレートを取得します。デフォルトでは、"url" Bean プロパティで指定されたテンプレートが取得され、テンプレートの検索が操作をブロックする可能性があるため、返された mono は制限されたエラスティックスケジューラにサブスクライブされます。
- パラメーター:
locale
- 現在のロケール- 戻り値:
- レンダリングする FreeMarker テンプレート
- 導入:
- 6.1
lookupTemplate(Locale)
が優先され、6.2 で削除される予定