0 0

freemarker中循环map根据key值得value 报错5

[#list uMap?keys as key]
     <select>
         <option value="${key}">${uMap[key]}</option>
      </select>
[/#list]

 

Map<Integer, String> uMap = new HashMap<Integer, String>();
uMap.put(1,"zhangsan");
uMap.put(2,"lisi");
model.addAttribute("uMap", uMap);

 

严重: Servlet.service() for servlet springMVC threw exception
FreeMarker template error:
For "...[...]" left-hand operand: Expected a sequence or string (or something that's implicitly convertible to string), but this evaluated to an extended_hash (wrapper: f.t.SimpleHash):
==> uMap  [in template "test.ftl" at line 50, column 58]

The failing instruction (FTL stack trace):
----------
==> ${uMap[key]}  [in template "test.ftl" at line 50, column 56]
    #list uMap?keys as key  [in template "test.ftl" at line 48, column 25]
----------

Java stack trace (for programmers):
----------
freemarker.core.UnexpectedTypeException: [... Exception message was already printed; see it above ...]
	at freemarker.core.DynamicKeyName.dealWithNumericalKey(DynamicKeyName.java:141)
	at freemarker.core.DynamicKeyName._eval(DynamicKeyName.java:104)
	at freemarker.core.Expression.eval(Expression.java:111)
	at freemarker.core.Expression.evalAndCoerceToString(Expression.java:115)
	at freemarker.core.DollarVariable.accept(DollarVariable.java:76)
	at freemarker.core.Environment.visit(Environment.java:265)
	at freemarker.core.MixedContent.accept(MixedContent.java:93)
	at freemarker.core.Environment.visit(Environment.java:265)
	at freemarker.core.IteratorBlock$Context.runLoop(IteratorBlock.java:181)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:509)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:103)
	at freemarker.core.Environment.visit(Environment.java:265)
	at freemarker.core.MixedContent.accept(MixedContent.java:93)
	at freemarker.core.Environment.visit(Environment.java:265)
	at freemarker.core.Environment.process(Environment.java:243)
	at freemarker.template.Template.process(Template.java:277)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.processTemplate(FreeMarkerView.java:366)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.doRender(FreeMarkerView.java:283)
	at org.springframework.web.servlet.view.freemarker.FreeMarkerView.renderMergedTemplateModel(FreeMarkerView.java:233)
	at org.springframework.web.servlet.view.AbstractTemplateView.renderMergedOutputModel(AbstractTemplateView.java:167)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:264)
	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1208)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:992)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:939)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.springframework.orm.hibernate4.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:152)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:619)

 

2013年8月09日 12:30
目前还没有答案

相关推荐

    FreeMarker 遍历list

    4. **输出结果**:`${key}`和`${value}`分别代表Map中的键和对应的值,它们会被替换为实际的数据并在页面上显示出来。 在FreeMarker的程序员指南中,如`FreeMarker_Manual_zh_CN.pdf`和`FreeMarker_Programmer ...

    Freemarker中遍历list集合实例

    5. **遍历map**:如果list中的元素是map,可以用`key`和`value`遍历键值对。 ```freemarker [0].properties as entry&gt; 属性名: ${entry.key}, 值: ${entry.value} ``` 6. **反向遍历**:使用`reverse`指令...

    Freemarker通用select下拉框

    这里的`#list`是Freemarker的迭代指令,遍历`dropdownList`中的每一项,并将`key`和`value`分别插入到`&lt;option&gt;`的`value`和文本内容中。 为了实现通用性,我们需要一个方法或服务在后端生成这个`dropdownList`,...

    freemaker学习教程

    由于FreeMarker的设计,当你尝试直接在模板中遍历一个Map,它实际上会遍历Map的所有键(key),而不是值(value)。这是因为FreeMarker默认不直接支持遍历Map的值,而是通过键来间接访问。因此,描述中提到的"直接...

    spring mvc freemarker 简单例子

    例如,可以利用Freemarker的条件判断、循环结构、函数调用等功能,以及Spring MVC提供的模型绑定、拦截器、AOP等特性,构建出功能丰富的Web应用。同时,Spring Boot简化了这些配置,使得集成更加方便快捷。总之,...

    FreeMarker笔记1

    Map的遍历使用`&lt;#foreach&gt;`指令,键值对可以通过`key`和`value`来访问: ```freemarker 键:${entry.key},值:${entry.value} ``` ### 4. 遍历 List&lt;Map&gt; 如果List的元素是Map,可以这样遍历: ```freemarker ...

    Spring配置Freemarker视图解析器,配置多个视图解析器

    Freemarker是一个强大的、轻量级的模板引擎,常被用作Spring MVC中的视图技术。本篇文章将深入探讨如何在Spring中配置Freemarker视图解析器,以及如何配置多个视图解析器以实现更灵活的应用场景。 首先,让我们了解...

    Spring3.1整合FreeMarker2.3.19

    标题“Spring3.1整合FreeMarker2.3.19”指的是在Spring 3.1版本的框架中集成FreeMarker 2.3.19模板引擎的过程和相关知识点。FreeMarker是一个开源的Java库,用于生成动态HTML、XML或其他类型的文本,常用于Web应用...

    freemarker_常用内置函数

    返回哈希表(hash)中的所有键(key),结果为一个序列。 ```html ${hash?keys} ``` 2. **hash?values** 返回哈希表中的所有值(value),结果同样为一个序列。 ```html ${hash?values} ``` #### 四、操作字符...

    SSH freemarker例子学习 拿来就能用 注释全面

    在这个例子中,我们将深入探讨如何在SSH框架中使用FreeMarker模板语言。 FreeMarker是一个强大的、轻量级的模板引擎,它允许开发者将业务逻辑与展示层分离,使得页面设计更加灵活。FreeMarker模板文件通常以`.ftl`...

    本项目主要通过一些详细的小列子讲述如何正确的使用FreeMarker

    - FreeMarker允许在模板中进行复杂的逻辑控制,如嵌套循环、条件分支等,以实现动态内容的生成。 - 示例模板: ```html ${user.name} &lt;p&gt;No users found. ``` 6. **自定义FreeMarker标签**: ...

    springMVC+freemarker整合实例

    SpringMVC和FreeMarker是两种在Java Web开发中广泛使用的技术。SpringMVC是一个轻量级的、基于组件的Web应用框架,它负责处理HTTP请求并分发到对应的控制器进行处理。而FreeMarker则是一个模板引擎,用于动态生成...

    从jsp到freemarker2.3.23

    遍历Map在Freemarker中也很简单,使用`&lt;#list&gt;`标签结合`?keys`操作符即可实现。 #### 定义变量 **JSP:** ```jsp &lt;c:set value="value" var="varName" [scope="{page|request|session|application}"]/&gt; ``` **...

    使用freeMarker模板和Spring boot后端API接口实现查询用户列表的功能。

    为了将数据从后端传递到前端,我们通常会将数据封装在一个Map对象中,其中键(key)对应于FreeMarker模板中的变量名,值(value)则是实际的数据。在上述代码中,我们返回了一个包含"users"键和用户列表的Map对象。...

    两种freemarker模板路径设置方法.docx

    这个服务类通过@Autowired注解注入了FreeMarkerConfigurer和FreeMarkerConfiguration,可以在方法中根据需求选择合适的方式获取和处理模板。 总结,设置Freemarker模板路径是Spring MVC中一个关键步骤,可以根据...

    freemarker05

    5. **映射(Map)**: 映射存储键值对,如`{ "key1": "value1", "key2": "value2" }`。在模板中,可以使用`map.key`来获取对应的值,如`${myMap["key1"]}`。 6. **日期和时间(Date/Time)**: Freemarker处理日期和时间...

    spring与freemarker整合 示例源码S

    Spring 和 Freemarker 的整合是Java Web开发中常见的一种技术组合,用于实现动态页面渲染。Spring 框架作为一款强大的企业级应用框架,提供了多种视图层解决方案,其中包括对Freemarker模板引擎的支持。Freemarker则...

    FreeMark学习笔记

    Map对象使用花括号包括,Map中的key-value对之间以英文冒号":"分隔,多组key-value对之间以英文逗号","分隔.下面是一个例子: {"语文":78, "数学":80} Map对象的key和value都是表达式,但是key必须是字符串 3.2 输出...

    ssm集成freemarker1

    在实际项目中,可以根据需求配置FreeMarker的更多高级特性,如自定义函数、导入其他模板、条件语句等,以实现更复杂的页面逻辑。同时,结合SpringMVC的拦截器、AOP等功能,可以进一步优化项目结构和提高代码复用性。

    freemarker总结

    [ {“Akey”:”Avalue”},{“Akey1”:”Avalue1”}, {“Bkey”:”Bvalue”},{“Bkey1”:”Bvalue1”}, ] hashes {“you”:”a”,”me”:”b”,”he”:”c”} 注释标志 这里是注释 --&gt; 旧版本的freemarker采用...

Global site tag (gtag.js) - Google Analytics