2016-04-26 13 views
2

これはhttp://www.mkyong.com/spring-mvc/spring-mvc-mustache-js-template-example/Spring MVC Javascriptテンプレートエンジンとnunjucksの統合方法は?

@Bean 
    public ScriptTemplateConfigurer configurer() { 
     ScriptTemplateConfigurer configurer = new ScriptTemplateConfigurer(); 
     configurer.setEngineName("nashorn"); 
     configurer.setScripts(
       "/static/js/nunjucks.js", "/static/js/render.js"); 
     configurer.setRenderFunction("render"); 
     return configurer; 
    } 

//render.jsファイルの内容

function render(template, model, url) { 
    return nunjucks.render(template, toJsonObject(model)); 
} 

に基づいて私のテンプレートエンジンの設定で、この例外が発生しました:私は提供することができますどのように

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: Failed to load script 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:981) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:860) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) 
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:845) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:821) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:583) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1158) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:511) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1090) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213) 
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:109) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:119) 
    at org.eclipse.jetty.server.Server.handle(Server.java:517) 
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:308) 
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:242) 
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:261) 
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) 
    at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:75) 
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceAndRun(ExecuteProduceConsume.java:213) 
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:147) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:654) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:572) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: java.lang.IllegalStateException: Failed to load script 
    at org.springframework.web.servlet.view.script.ScriptTemplateView.loadScripts(ScriptTemplateView.java:293) 
    at org.springframework.web.servlet.view.script.ScriptTemplateView.createEngineFromName(ScriptTemplateView.java:277) 
    at org.springframework.web.servlet.view.script.ScriptTemplateView.initApplicationContext(ScriptTemplateView.java:242) 
    at org.springframework.context.support.ApplicationObjectSupport.setApplicationContext(ApplicationObjectSupport.java:74) 
    at org.springframework.context.support.ApplicationContextAwareProcessor.invokeAwareInterfaces(ApplicationContextAwareProcessor.java:119) 
    at org.springframework.context.support.ApplicationContextAwareProcessor.postProcessBeforeInitialization(ApplicationContextAwareProcessor.java:94) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:408) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1570) 
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:399) 
    at org.springframework.web.servlet.view.UrlBasedViewResolver.applyLifecycleMethods(UrlBasedViewResolver.java:487) 
    at org.springframework.web.servlet.view.UrlBasedViewResolver.loadView(UrlBasedViewResolver.java:482) 
    at org.springframework.web.servlet.view.AbstractCachingViewResolver.createView(AbstractCachingViewResolver.java:244) 
    at org.springframework.web.servlet.view.UrlBasedViewResolver.createView(UrlBasedViewResolver.java:446) 
    at org.springframework.web.servlet.view.AbstractCachingViewResolver.resolveViewName(AbstractCachingViewResolver.java:156) 
    at org.springframework.web.servlet.DispatcherServlet.resolveViewName(DispatcherServlet.java:1282) 
    at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1223) 
    at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:969) 
    ... 28 more 
Caused by: javax.script.ScriptException: ReferenceError: "window" is not defined in <eval> at line number 9 
    at jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:467) 
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:451) 
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:403) 
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:399) 
    at jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:150) 
    at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:249) 
    at org.springframework.web.servlet.view.script.ScriptTemplateView.loadScripts(ScriptTemplateView.java:289) 
    ... 47 more 
Caused by: <eval>:9 ReferenceError: "window" is not defined 
    at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:57) 
    at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:319) 
    at jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:291) 
    at jdk.nashorn.internal.objects.Global.__noSuchProperty__(Global.java:1432) 
    at jdk.nashorn.internal.scripts.Script$2$\^eval\_.:program(<eval>:9) 
    at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:640) 
    at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:228) 
    at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:393) 
    at jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:446) 

またはnunjucksのウィンドウをシミュレートしますか?

答えて

0
var window = {}; 

ウィンドウオブジェクトをポリフィルする必要があります。

This repo was helpful to me for this

+0

それは私のために働く –

+0

とエラーを減少していません –

関連する問題