Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Struts2/GAE:严重:模板处理错误_Java_Google App Engine_Struts2 - Fatal编程技术网

Java Struts2/GAE:严重:模板处理错误

Java Struts2/GAE:严重:模板处理错误,java,google-app-engine,struts2,Java,Google App Engine,Struts2,我遵循本教程将Struts2与Google App Engine集成: 我的生成路径如下所示: 但我有以下堆栈跟踪: 严重:模板处理错误:“Expression parameters.templateDir” 在template/xhtml/form.ftl的第23行第15列中未定义。“ 表达式parameters.templateDir在第23行第15列中未定义 在template/xhtml/form.ftl中。有问题的指令: ==>${parameters.templateDir}[在

我遵循本教程将Struts2与Google App Engine集成:

我的生成路径如下所示:

但我有以下堆栈跟踪:

严重:模板处理错误:“Expression parameters.templateDir” 在template/xhtml/form.ftl的第23行第15列中未定义。“

表达式parameters.templateDir在第23行第15列中未定义

在template/xhtml/form.ftl中。有问题的指令: ==>${parameters.templateDir}[在include中template/xhtml/form.ftl的第23行第13列] “/${parameters.templateDir}/xhtml/form validate.ftl”[在第23行

template/xhtml/form.ftl中的第1列] 程序员的Java回溯: ----------freemarker.core.InvalidReferenceException:中第23行第15列未定义表达式参数.templateDir template/xhtml/form.ftl。在 freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125) 位于freemarker.core.Expression.getStringValue(Expression.java:118) freemarker.core.Expression.getStringValue(Expression.java:93)位于 accept(DollarVariable.java:76)位于 freemarker.core.Environment.visit(Environment.java:221)访问 accept(MixedContent.java:92)位于 freemarker.core.Environment.visit(Environment.java:221)访问 freemarker.core.Environment.renderRelationToString(Environment.java:1594) 在 freemarker.core.StringLiteral.getStringValue(StringLiteral.java:101) 位于freemarker.core.Include.accept(Include.java:124) freemarker.core.Environment.visit(Environment.java:221)访问 accept(MixedContent.java:92)位于 freemarker.core.Environment.visit(Environment.java:221)访问 freemarker.core.Environment.process(Environment.java:199)位于 freemarker.template.template.process(template.java:237)位于 org.apache.struts2.components.template.freemakerTemplateEngine.renderTemplate(freemakerTemplateEngine.java:157) 在 org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:559) 在 org.apache.struts2.components.ClosingUIBean.start(ClosingUIBean.java:59) 在 org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:53) 在 org.apache.jsp.User.pages.login\u jsp.\u jspx\u meth\u s\u 005fform\u 005f0(login\u jsp.java:101) 位于org.apache.jsp.User.pages.login\u jsp.\u jsp服务(login\u jsp.java:73) 位于org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) 在 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 位于org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 在 com.google.appengine.tools.development.PrivilegedJspServlet.access$101(PrivilegedJspServlet.java:23) 在 com.google.appengine.tools.development.privilegedjsspservlet$2.run(privilegedjsspservlet.java:61) 位于java.security.AccessController.doPrivileged(本机方法) com.google.appengine.tools.development.PrivilegedJspServlet.service(PrivilegedJspServlet.java:58) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 在 com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:63) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在 com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectRequest(DevAppServerModulesFilter.java:366) 在 com.google.appengine.tools.development.DevAppServerModulesFilter.doDirectModuleRequest(DevAppServerModulesFilter.java:349) 在 com.google.appengine.tools.development.DevAppServerModulesFilter.doFilter(DevAppServerModulesFilter.java:116) 在 org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 在 org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 在 org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 在 org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 在 org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 在 org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 在 com.google.appengine.tools.development.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:98) 位于org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327) 位于org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126) 在 org.apache.struts2.dispatcher.ServletDispatcherResult.doExecute(ServletDispatcherResult.java:157) 在 org.apache.struts2.dispatcher.StrutsResultSupport.execute(StrutsResultSupport.java:186)位于 com.opensymphony.xwork2.DefaultActionInvocation.ExecuteSult(DefaultActionInvocation.java:374) 在 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:278) 在 org.apache.struts2.interceptor.debug.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256) 在 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 在 com.opensymphony.xwork2.intercept.DefaultWorkflowIntercept.doIntercept(DefaultWorkflowIntercept.java:176) 在 com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) 在 com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:249) 在 com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265) 在 org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doInterce