Struts2 Struts 2 FreeMarker模板错误堆栈。未定义findValue(';top';)

Struts2 Struts 2 FreeMarker模板错误堆栈。未定义findValue(';top';),struts2,Struts2,我还有一个关于Struts2的问题 我在做一个图表&一个数据表。在第一次加载图表(并单击图表数据链接到数据表)时,它工作正常。但是,当我更改图表中的参数并希望重新填充datatable时,会出现以下错误: Error on line 69, column 13 in template/simple/select.ftl stack.findValue('top') is undefined. 无法将其分配给itemKey 有问题的指令: 堆栈跟踪 我应该如何开始修复这个 提前感谢:)好的,我知

我还有一个关于Struts2的问题

我在做一个图表&一个数据表。在第一次加载图表(并单击图表数据链接到数据表)时,它工作正常。但是,当我更改图表中的参数并希望重新填充datatable时,会出现以下错误:

Error on line 69, column 13 in template/simple/select.ftl
stack.findValue('top') is undefined.
无法将其分配给itemKey

有问题的指令: 堆栈跟踪 我应该如何开始修复这个


提前感谢:)

好的,我知道这是一个过时的问题,但在我努力寻找解决方案的过程中,以下是我通过链接找到的:

在您面对的列表中添加空值 模板错误

再次检查数据库或检查列表值(如果添加) 空值此问题将出现

因此,我正在检查我的列表,砰!这是正确的——两者之间有空值,struts/freemaker现在知道该怎么做了

我的解决方案是在我的SQL中,我选择了我想要的字段,为了确保,我添加了“字段不为空”。
从那以后,我的页面一直运行得很好。

你能展示JSP部分并描述你在那里尝试做什么吗?听起来好像没有发出S2请求,就像直接访问JSP一样——需要更多信息,但我首先要看的是更新请求处理的具体情况。基本上在JSP方面,我有许多下拉列表和复选框选项,它们将生成图表。然后在图表本身上,我还将把这些参数传递到struts中的另一个操作中,该操作执行datatable。当这些输入参数从一个动作传递到另一个动作时是否丢失了?您是否在struts/spring中实例化了任何东西,然后在方法中更改了引用的对象?确保框架引用的任何对象都不会更改为另一个引用的对象。嗨,JasonG,我真的不太明白你在第二个问题上问的问题。但对于第一个问题,是的。基本上,在我的struts2框架上,我需要完成的是,我有许多参数要传递以获得图表,然后在图表本身上,我将从图表数据中单击,并将参数传递到下一个操作中以呈现datatable。发生了什么直到我试图通过在下拉列表中选择其他内容来更改参数(图表刷新为新数据并)单击图表并点击bam,这个错误才发生!出现错误。原因是什么?谢谢。没有意识到列表不能有空值。救了我一天:)
==> assignment: itemKey=stack.findValue('top') [on line 69, column 13 in
template/simple/select.ftl]
in user-directive s.iterator [on line 59, column 1 in template/simple/select.ftl]
freemarker.core.InvalidReferenceException: Error on line 69, column 13 in template/simple/select.ftl
stack.findValue('top') is undefined.
It cannot be assigned to itemKey
    at freemarker.core.Assignment.accept(Assignment.java:111)
    at freemarker.core.Environment.visit(Environment.java:210)
    at freemarker.core.MixedContent.accept(MixedContent.java:92)
    at freemarker.core.Environment.visit(Environment.java:210)
    at freemarker.core.IfBlock.accept(IfBlock.java:82)
    at freemarker.core.Environment.visit(Environment.java:210)
    at freemarker.core.MixedContent.accept(MixedContent.java:92)
    at freemarker.core.Environment.visit(Environment.java:210)
    at freemarker.core.Environment.visit(Environment.java:299)
    at freemarker.core.UnifiedCall.accept(UnifiedCall.java:130)
    at freemarker.core.Environment.visit(Environment.java:210)
    at freemarker.core.MixedContent.accept(MixedContent.java:92)
    at freemarker.core.Environment.visit(Environment.java:210)
    at freemarker.core.Environment.process(Environment.java:190)
    at freemarker.template.Template.process(Template.java:237)
    at org.apache.struts2.components.template.FreemarkerTemplateEngine.renderTemplate(FreemarkerTemplateEngine.java:157)
    at org.apache.struts2.components.UIBean.mergeTemplate(UIBean.java:559)
    at org.apache.struts2.components.UIBean.end(UIBean.java:513)
    at org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTagSupport.java:42)
    at org.apache.jsp.Annotate_jsp._jspx_meth_s_005fselect_005f9(Annotate_jsp.java:1086)
    at org.apache.jsp.Annotate_jsp._jspx_meth_s_005fform_005f0(Annotate_jsp.java:629)
    at org.apache.jsp.Annotate_jsp._jspService(Annotate_jsp.java:419)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja