Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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 Freemarker模板错误:null或缺少_Java_Rest_Templates_Freemarker_Spark Framework - Fatal编程技术网

Java Freemarker模板错误:null或缺少

Java Freemarker模板错误:null或缺少,java,rest,templates,freemarker,spark-framework,Java,Rest,Templates,Freemarker,Spark Framework,我认为这意味着在生成模板时数据是空的,但很明显不是空的。我不知道这是怎么回事。下面是我的模板文件。 loginform.ftl FreeMarker template error: The following has evaluated to null or missing: ==> data [in template "result.ftl" at line 2, column 8] FTL stack trace ("~" means nesting-related):

我认为这意味着在生成模板时数据是空的,但很明显不是空的。我不知道这是怎么回事。下面是我的模板文件。
loginform.ftl

FreeMarker template error:
The following has evaluated to null or missing:
==> data  [in template "result.ftl" at line 2, column 8]


FTL stack trace ("~" means nesting-related):
    - Failed at: #list data as key, value  [in template "result.ftl" at line 
2, column 1]
---- 

城市名称:
说明(2个字母格式):
result.ftl

<form action= "/select" method= "POST" accept-charset="utf-8">

  City Name: <input type= "text"  name = "city">

  State(2 letter format):<input type= "text"  name = "state">

 <input type= "submit" id = "submitButton">

</form>

${key}=${value};

错误消息是正确的。在Java代码中,
数据
用作数据模型根。根本身不是顶级变量,而是顶级变量的容器。例如,
${Hello}
可以工作,并打印“您的notnull!”。(还请注意,“数据”只是一个局部变量名,在Java编译过程中会消失,您永远不会将“数据”变量名传递给FreeMarker。)因此,您应该创建一个
映射
(或bean),将
数据
映射
(或bean)放入其中,并将
传递给
模板。过程

更新:也就是说,现在您有了
temp.process(数据、写入程序),您应该具有:

<html>
  <#list data as key, value>
    ${key} = ${value};
  </#list>
</html>
Map root=newhashmap();
root.put(“数据”,data);
临时进程(root、writer);

但当我尝试对地图数据中的所有键进行排序时,这是否有帮助?列表属性是否仍然只在数据映射中的键和值中运行?好吧,您在那里有
,那么如果没有
数据,它还会列出什么?我很确定这种混乱是从哪里来的。也许你认为“数据”这个名字很特别?不是。它可以是“苹果”或任何东西。在根
Map
中,您可以有任意多个
Map
-s(和
List
-s,
String
-s,等等),当然每个都有不同的名称。没问题。我得到了它。我马上就发布答案。
<html>
  <#list data as key, value>
    ${key} = ${value};
  </#list>
</html>
Map<String, object> root = new HashMap<>();
root.put("data", data);

temp.process(root, writer);