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()
ScriptTemplateConfig
ScriptEngine
を返します。ScriptTemplateConfig
の getEngine
public void setEngineName(@Nullable java.lang.String engineName)
ScriptEngine
のインスタンス化に使用されるエンジン名を設定します。renderFunction
が指定されている場合、スクリプトエンジンは Invocable
を実装する必要があります。engine
または engineName
の両方ではなく、両方を定義する必要があります。@Nullable public java.lang.String getEngineName()
ScriptTemplateConfig
ScriptEngine
のインスタンス化に使用されるエンジン名を返します。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()
ScriptTemplateConfig
ScriptTemplateConfig
の 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()
ScriptTemplateConfig
ScriptTemplateConfig
の getScripts
public void setRenderObject(@Nullable java.lang.String renderObject)
Mustache.render()
を呼び出すには、renderObject
を "Mustache"
に、renderFunction
を "render"
に設定する必要があります。@Nullable public java.lang.String getRenderObject()
ScriptTemplateConfig
ScriptTemplateConfig
の 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()
ScriptTemplateConfig
ScriptEngine.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()
ScriptTemplateConfig
ScriptTemplateConfig
の getCharset
public void setResourceLoaderPath(@Nullable java.lang.String resourceLoaderPath)
ResourceLoader
で理解されているように、"file:" や "classpath:" などの標準 URL と疑似 URL がサポートされています。ApplicationContext で実行している場合は、相対パスを使用できます。デフォルトは "classpath:" です。
@Nullable public java.lang.String getResourceLoaderPath()
ScriptTemplateConfig
ScriptTemplateConfig
の getResourceLoaderPath