@Bean public ScriptTemplateConfigurer nashornConfigurer() { ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer(); configurer.setEngineName("nashorn"); configurer.setScripts("org/springframework/web/servlet/view/script/nashorn/render.js"); configurer.setRenderFunction("render"); return configurer; } }
@Bean public ScriptTemplateConfigurer jythonConfigurer() { ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer(); configurer.setScripts("org/springframework/web/servlet/view/script/jython/render.py"); configurer.setEngineName("jython"); configurer.setRenderFunction("render"); return configurer; } }
@Bean public ScriptTemplateConfigurer jRubyConfigurer() { ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer(); configurer.setScripts("org/springframework/web/servlet/view/script/jruby/render.rb"); configurer.setEngineName("jruby"); configurer.setRenderFunction("render"); return configurer; } }
@Bean public ScriptTemplateConfigurer kotlinScriptConfigurer() { ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer(); configurer.setEngineName("kotlin"); configurer.setScripts("org/springframework/web/servlet/view/script/kotlin/render.kts"); configurer.setRenderFunction("render"); return configurer; }
@Bean public ScriptTemplateConfigurer nashornConfigurer() { ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer(); configurer.setEngineName("nashorn"); configurer.setScripts("org/springframework/web/servlet/view/script/nashorn/render.js"); configurer.setRenderFunction("renderWithUrl"); return configurer; } }
@Test public void detectScriptTemplateConfigWithEngineName() { this.configurer.setEngineName("nashorn"); this.configurer.setRenderObject("Template"); this.configurer.setRenderFunction("render"); DirectFieldAccessor accessor = new DirectFieldAccessor(this.view); this.view.setApplicationContext(this.wac); assertEquals("nashorn", accessor.getPropertyValue("engineName")); assertNotNull(accessor.getPropertyValue("engine")); assertEquals("Template", accessor.getPropertyValue("renderObject")); assertEquals("render", accessor.getPropertyValue("renderFunction")); assertEquals(MediaType.TEXT_HTML_VALUE, accessor.getPropertyValue("contentType")); assertEquals(StandardCharsets.UTF_8, accessor.getPropertyValue("charset")); }
@Bean public ScriptTemplateConfigurer handlebarsConfigurer() { ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer(); configurer.setEngineName("nashorn"); configurer.setScripts("/static/polyfill.js", "/META-INF/resources/webjars/handlebars/3.0.0-1/handlebars.js", "/static/render.js"); configurer.setRenderFunction("render"); configurer.setSharedEngine(false); return configurer; }