[#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)
相关推荐
4. **输出结果**:`${key}`和`${value}`分别代表Map中的键和对应的值,它们会被替换为实际的数据并在页面上显示出来。 在FreeMarker的程序员指南中,如`FreeMarker_Manual_zh_CN.pdf`和`FreeMarker_Programmer ...
5. **遍历map**:如果list中的元素是map,可以用`key`和`value`遍历键值对。 ```freemarker [0].properties as entry> 属性名: ${entry.key}, 值: ${entry.value} ``` 6. **反向遍历**:使用`reverse`指令...
这里的`#list`是Freemarker的迭代指令,遍历`dropdownList`中的每一项,并将`key`和`value`分别插入到`<option>`的`value`和文本内容中。 为了实现通用性,我们需要一个方法或服务在后端生成这个`dropdownList`,...
由于FreeMarker的设计,当你尝试直接在模板中遍历一个Map,它实际上会遍历Map的所有键(key),而不是值(value)。这是因为FreeMarker默认不直接支持遍历Map的值,而是通过键来间接访问。因此,描述中提到的"直接...
例如,可以利用Freemarker的条件判断、循环结构、函数调用等功能,以及Spring MVC提供的模型绑定、拦截器、AOP等特性,构建出功能丰富的Web应用。同时,Spring Boot简化了这些配置,使得集成更加方便快捷。总之,...
Map的遍历使用`<#foreach>`指令,键值对可以通过`key`和`value`来访问: ```freemarker 键:${entry.key},值:${entry.value} ``` ### 4. 遍历 List<Map> 如果List的元素是Map,可以这样遍历: ```freemarker ...
Freemarker是一个强大的、轻量级的模板引擎,常被用作Spring MVC中的视图技术。本篇文章将深入探讨如何在Spring中配置Freemarker视图解析器,以及如何配置多个视图解析器以实现更灵活的应用场景。 首先,让我们了解...
标题“Spring3.1整合FreeMarker2.3.19”指的是在Spring 3.1版本的框架中集成FreeMarker 2.3.19模板引擎的过程和相关知识点。FreeMarker是一个开源的Java库,用于生成动态HTML、XML或其他类型的文本,常用于Web应用...
返回哈希表(hash)中的所有键(key),结果为一个序列。 ```html ${hash?keys} ``` 2. **hash?values** 返回哈希表中的所有值(value),结果同样为一个序列。 ```html ${hash?values} ``` #### 四、操作字符...
在这个例子中,我们将深入探讨如何在SSH框架中使用FreeMarker模板语言。 FreeMarker是一个强大的、轻量级的模板引擎,它允许开发者将业务逻辑与展示层分离,使得页面设计更加灵活。FreeMarker模板文件通常以`.ftl`...
- FreeMarker允许在模板中进行复杂的逻辑控制,如嵌套循环、条件分支等,以实现动态内容的生成。 - 示例模板: ```html ${user.name} <p>No users found. ``` 6. **自定义FreeMarker标签**: ...
SpringMVC和FreeMarker是两种在Java Web开发中广泛使用的技术。SpringMVC是一个轻量级的、基于组件的Web应用框架,它负责处理HTTP请求并分发到对应的控制器进行处理。而FreeMarker则是一个模板引擎,用于动态生成...
遍历Map在Freemarker中也很简单,使用`<#list>`标签结合`?keys`操作符即可实现。 #### 定义变量 **JSP:** ```jsp <c:set value="value" var="varName" [scope="{page|request|session|application}"]/> ``` **...
为了将数据从后端传递到前端,我们通常会将数据封装在一个Map对象中,其中键(key)对应于FreeMarker模板中的变量名,值(value)则是实际的数据。在上述代码中,我们返回了一个包含"users"键和用户列表的Map对象。...
这个服务类通过@Autowired注解注入了FreeMarkerConfigurer和FreeMarkerConfiguration,可以在方法中根据需求选择合适的方式获取和处理模板。 总结,设置Freemarker模板路径是Spring MVC中一个关键步骤,可以根据...
5. **映射(Map)**: 映射存储键值对,如`{ "key1": "value1", "key2": "value2" }`。在模板中,可以使用`map.key`来获取对应的值,如`${myMap["key1"]}`。 6. **日期和时间(Date/Time)**: Freemarker处理日期和时间...
Spring 和 Freemarker 的整合是Java Web开发中常见的一种技术组合,用于实现动态页面渲染。Spring 框架作为一款强大的企业级应用框架,提供了多种视图层解决方案,其中包括对Freemarker模板引擎的支持。Freemarker则...
Map对象使用花括号包括,Map中的key-value对之间以英文冒号":"分隔,多组key-value对之间以英文逗号","分隔.下面是一个例子: {"语文":78, "数学":80} Map对象的key和value都是表达式,但是key必须是字符串 3.2 输出...
在实际项目中,可以根据需求配置FreeMarker的更多高级特性,如自定义函数、导入其他模板、条件语句等,以实现更复杂的页面逻辑。同时,结合SpringMVC的拦截器、AOP等功能,可以进一步优化项目结构和提高代码复用性。
[ {“Akey”:”Avalue”},{“Akey1”:”Avalue1”}, {“Bkey”:”Bvalue”},{“Bkey1”:”Bvalue1”}, ] hashes {“you”:”a”,”me”:”b”,”he”:”c”} 注释标志 这里是注释 --> 旧版本的freemarker采用...