HTTP Status 500 - Expression parameters.id is undefined on line 60, column 8 in template/simple/radiomap.ftl. - Class: freemarker.core.TemplateObject
type Exception report
message Expression parameters.id is undefined on line 60, column 8 in template/simple/radiomap.ftl. - Class: freemarker.core.TemplateObject
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Expression parameters.id is undefined on line 60, column 8 in template/simple/radiomap.ftl. - Class: freemarker.core.TemplateObject File: TemplateObject.java Method: assertNonNull Line: 125 - freemarker/core/TemplateObject.java:125:-1 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:555) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96)
root cause
Expression parameters.id is undefined on line 60, column 8 in template/simple/radiomap.ftl. - Class: freemarker.core.TemplateObject File: TemplateObject.java Method: assertNonNull Line: 125 - freemarker/core/TemplateObject.java:125:-1 org.apache.struts2.components.UIBean.end(UIBean.java:528) org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42) org.apache.jsp.tag1_jsp._jspx_meth_s_005fradio_005f0(tag1_jsp.java:367) org.apache.jsp.tag1_jsp._jspx_meth_s_005fform_005f0(tag1_jsp.java:276) org.apache.jsp.tag1_jsp._jspService(tag1_jsp.java:179) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96)
root cause
freemarker.core.InvalidReferenceException: Expression parameters.id is undefined on line 60, column 8 in template/simple/radiomap.ftl. freemarker.core.TemplateObject.assertNonNull(TemplateObject.java:125) freemarker.core.Expression.getStringValue(Expression.java:118) freemarker.core.Expression.getStringValue(Expression.java:93) freemarker.core.StringBuiltins$StringBuiltIn._getAsTemplateModel(StringBuiltins.java:71) freemarker.core.Expression.getAsTemplateModel(Expression.java:89) freemarker.core.Expression.getStringValue(Expression.java:93) freemarker.core.DollarVariable.accept(DollarVariable.java:76) freemarker.core.Environment.visit(Environment.java:221) freemarker.core.MixedContent.accept(MixedContent.java:92) freemarker.core.Environment.visit(Environment.java:221) freemarker.core.Environment.visit(Environment.java:310) freemarker.core.UnifiedCall.accept(UnifiedCall.java:130) freemarker.core.Environment.visit(Environment.java:221) freemarker.core.MixedContent.accept(MixedContent.java:92) freemarker.core.Environment.visit(Environment.java:221) freemarker.core.Environment.include(Environment.java:1508) freemarker.core.Include.accept(Include.java:169) freemarker.core.Environment.visit(Environment.java:221) freemarker.core.MixedContent.accept(MixedContent.java:92) freemarker.core.Environment.visit(Environment.java:221) freemarker.core.Environment.process(Environment.java:199) freemarker.template.Template.process(Template.java:259) org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:157) org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:572) org.apache.struts2.components.UIBean.end(UIBean.java:526) org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42) org.apache.jsp.tag1_jsp._jspx_meth_s_005fradio_005f0(tag1_jsp.java:367) org.apache.jsp.tag1_jsp._jspx_meth_s_005fform_005f0(tag1_jsp.java:276) org.apache.jsp.tag1_jsp._jspService(tag1_jsp.java:179) org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:438) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:96)
note The full stack trace of the root cause is available in the Apache Tomcat/8.0.30 logs.
乍一看知道是radio出错了,但是是完全按书上敲的啊,后来试着给radio的name属性赋值,就运行得通了,再仔细看一下错误提示,果然有这句话: