public class ScriptTemplateConfigurer extends ObjectSE implements ScriptTemplateConfig
ScriptEngine
を作成するための Spring MVC の ScriptTemplateConfig
の実装。// Add the following to an @Configuration class @Bean public ScriptTemplateConfigurer mustacheConfigurer() { ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer(); configurer.setEngineName("nashorn"); configurer.setScripts("mustache.js"); configurer.setRenderObject("Mustache"); configurer.setRenderFunction("render"); return configurer; }
注意 : sharedEngine
プロパティを false
に設定することにより、Handlebars または Nashorn で実行されている React のように、同時実行用に設計されていないテンプレートライブラリで非スレッドセーフスクリプトエンジンを使用できます。
ScriptTemplateView
コンストラクターと説明 |
---|
ScriptTemplateConfigurer() デフォルトコンストラクター。 |
ScriptTemplateConfigurer(StringSE engineName) 指定されたエンジン名を使用して新しい ScriptTemplateConfigurer を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
CharsetSE | getCharset() スクリプトおよびテンプレートファイルの読み取りに使用される文字セットを返します。 |
StringSE | getContentType() レスポンスに使用するコンテンツ型を返します。 |
ScriptEngineSE | getEngine() ビューで使用する ScriptEngine SE を返します。 |
StringSE | getEngineName() ScriptEngine SE のインスタンス化に使用されるエンジン名を返します。 |
SupplierSE<ScriptEngineSE> | getEngineSupplier() ScriptEngine SE のインスタンス化に使用されるエンジンサプライヤーを返します。 |
StringSE | getRenderFunction() レンダリング関数名を返します(オプション)。 |
StringSE | getRenderObject() render 関数が属するオブジェクトを返します(オプション)。 |
StringSE | getResourceLoaderPath() Spring リソースの場所を介してリソースローダーのパスを返します。 |
StringSE[] | getScripts() スクリプトエンジン(ライブラリまたはユーザー指定)によってロードされるスクリプトを返します。 |
BooleanSE | isSharedEngine() すべてのスレッドで共有エンジンを使用するか、各スレッドのスレッドローカルエンジンインスタンスを作成するかを返します。 |
void | setCharset(CharsetSE charset) スクリプトおよびテンプレートファイルの読み取りに使用する文字セットを設定します。 |
void | setContentType(StringSE contentType) レスポンスに使用するコンテンツ型を設定します。 |
void | setEngine(ScriptEngineSE engine) ScriptEngine SE をビューで使用するように設定します。 |
void | setEngineName(StringSE engineName) ScriptEngine SE のインスタンス化に使用されるエンジン名を設定します。 |
void | setEngineSupplier(SupplierSE<ScriptEngineSE> engineSupplier) |
void | setRenderFunction(StringSE renderFunction) レンダリング関数名を設定します(オプション)。 |
void | setRenderObject(StringSE renderObject) render 関数が属するオブジェクトを設定します(オプション)。 |
void | setResourceLoaderPath(StringSE resourceLoaderPath) Spring リソースの場所を介してリソースローダーのパスを設定します。 |
void | setScripts(StringSE... scriptNames) スクリプトエンジン(ライブラリまたはユーザー指定)によってロードされるスクリプトを設定します。 |
void | setSharedEngine(BooleanSE sharedEngine) false に設定されている場合、単一の共有インスタンスではなく、スレッドローカル ScriptEngine SE インスタンスを使用します。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ScriptTemplateConfigurer()
public ScriptTemplateConfigurer(StringSE engineName)
public void setEngine(@Nullable ScriptEngineSE engine)
ScriptEngine
SE をビューで使用するように設定します。renderFunction
が指定されている場合、スクリプトエンジンは Invocable
を実装する必要があります。engine
または engineName
の両方ではなく、両方を定義する必要があります。sharedEngine
フラグが false
に設定されている場合、この setter ではスクリプトエンジンを指定しないでください。スクリプトエンジンの複数の遅延インスタンス化を意味するため、setEngineName(String)
または setEngineSupplier(Supplier)
で指定してください。
@Nullable public ScriptEngineSE getEngine()
ScriptTemplateConfig
ScriptEngine
SE を返します。ScriptTemplateConfig
の getEngine
public void setEngineSupplier(@Nullable SupplierSE<ScriptEngineSE> engineSupplier)
ScriptEngine
SE サプライヤーをビューで使用するように設定します。通常は setSharedEngine(Boolean)
を false
に設定して使用します。renderFunction
が指定されている場合、スクリプトエンジンは Invocable
を実装する必要があります。engineSupplier
、engine
、engineName
のいずれかを定義する必要があります。setEngine(ScriptEngine)
, setEngineName(String)
@Nullable public SupplierSE<ScriptEngineSE> getEngineSupplier()
ScriptTemplateConfig
ScriptEngine
SE のインスタンス化に使用されるエンジンサプライヤーを返します。ScriptTemplateConfig
の getEngineSupplier
public void setEngineName(@Nullable StringSE engineName)
ScriptEngine
SE のインスタンス化に使用されるエンジン名を設定します。renderFunction
が指定されている場合、スクリプトエンジンは Invocable
を実装する必要があります。engine
または engineName
の両方ではなく、両方を定義する必要があります。@Nullable public StringSE getEngineName()
ScriptTemplateConfig
ScriptEngine
SE のインスタンス化に使用されるエンジン名を返します。ScriptTemplateConfig
の getEngineName
public void setSharedEngine(@Nullable BooleanSE sharedEngine)
false
に設定されている場合、単一の共有インスタンスではなく、スレッドローカル ScriptEngine
SE インスタンスを使用します。Nashorn で実行されている Handlebars や React などの同時実行用に設計されていないテンプレートライブラリを使用する非スレッドセーフスクリプトエンジンを使用する場合は、このフラグを false
に設定する必要があります。 このフラグが false
に設定されている場合、setEngineName(String)
または setEngineSupplier(Supplier)
を使用してスクリプトエンジンを指定する必要があります。スクリプトエンジンの複数のインスタンスを遅延して(スレッドごとに 1 つ)作成する必要があるため、setEngine(ScriptEngine)
を使用することはできません。
@Nullable public BooleanSE isSharedEngine()
ScriptTemplateConfig
ScriptTemplateConfig
の isSharedEngine
public void setScripts(@Nullable StringSE... scriptNames)
resourceLoaderPath
のデフォルト値は "classpath:" であるため、クラスパスで使用可能なスクリプトを簡単にロードできます。 例: WebJars 依存関係およびカスタム "render.js" ファイルとして使用可能な JavaScript ライブラリを使用するには、configurer.setScripts("/META-INF/resources/webjars/library/version/library.js", "com/myproject/script/render.js");
を呼び出す必要があります。
@Nullable public StringSE[] getScripts()
ScriptTemplateConfig
ScriptTemplateConfig
の getScripts
public void setRenderObject(@Nullable StringSE renderObject)
Mustache.render()
を呼び出すには、renderObject
を "Mustache"
に、renderFunction
を "render"
に設定する必要があります。@Nullable public StringSE getRenderObject()
ScriptTemplateConfig
ScriptTemplateConfig
の getRenderObject
public void setRenderFunction(@Nullable StringSE renderFunction)
ScriptEngine.eval(String, Bindings)
SE で評価されます。この関数は、次のパラメーターで呼び出されます。
String template
: テンプレートの内容 Map model
: ビューモデル RenderingContext context
: レンダリングコンテキスト (5.0 以降)RenderingContext
@Nullable public StringSE getRenderFunction()
ScriptTemplateConfig
ScriptEngine.eval(String, Bindings)
SE で評価されます。ScriptTemplateConfig
の getRenderFunction
public void setContentType(@Nullable StringSE contentType)
text/html
)。@Nullable public StringSE getContentType()
ScriptTemplateConfig
の getContentType
public void setCharset(@Nullable CharsetSE charset)
UTF-8
)。@Nullable public CharsetSE getCharset()
ScriptTemplateConfig
ScriptTemplateConfig
の getCharset
public void setResourceLoaderPath(@Nullable StringSE resourceLoaderPath)
ResourceLoader
で理解されているように、"file:" や "classpath:" などの標準 URL と疑似 URL がサポートされています。ApplicationContext で実行している場合は、相対パスを使用できます。デフォルトは "classpath:" です。
@Nullable public StringSE getResourceLoaderPath()
ScriptTemplateConfig
ScriptTemplateConfig
の getResourceLoaderPath