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