freemarker中遍历list<map<String,String>>
2015-07-22 11:22
549 查看
转自:http://blog.csdn.net/lsh6688/article/details/17091277
<#list var as map>
<tr>
<#list map?keys as itemKey> //关键点
<#if itemKey="fieldLabel" && map['type'] == "text" >
<td >${map[itemKey]}</td>
</#if>
<#if itemKey="java_lang_String" && map['type'] == "text">
<td >${map[itemKey]}</td>
</#if>
<#if itemKey="fieldLabel" && map['type'] == "file">
<td >${map['fieldLabel']}</td>
</#if>
<#if itemKey="java_io_file" && map['type'] == "file">
<td >
<#list "${map[itemKey]}"?split(",") as x> //使用split函数,等同于java中的split函数
<a href="FlowDownServlet?fileName=${x}">${x}</a>
</#list>
</td>
</#if>
</#list>
<#if map['type'] == "select">
<td >${map['fieldLabel']}</td>
<td >
<#list form.fields as field>
<#if field.fieldInput.type == "select">
<select name="props['${field.fieldName}']">
<#list field.items as item>
<option <#if map['java_lang_String'] == item.value>selected</#if> value="${item.value}">${item.label}</option>
</#list>
</select>
</#if>
</#list>
</td>
</#if>
</tr>
</#list>
后台传递过来的数据
[java] view
plaincopy
List<LinkedHashMap<String,Object>> var = SubmitManager.getInstance().getProperty(documentId);
rootMap.put("var", var);
template.process(rootMap, out);
以前使用freemarker没有理解它的作用,现在有了进一步的了解,它其实和jstl一样,也是一套页面标签函数,这样就回答了一些人的疑问,想在freemarker中使用jstl,其实freemarker完全能满足jstl的功能.只不过它有自己的语法,不能直接获取页面request中的参数而已.学习一定要深入理解,反复实践才行.
<#list var as map>
<tr>
<#list map?keys as itemKey> //关键点
<#if itemKey="fieldLabel" && map['type'] == "text" >
<td >${map[itemKey]}</td>
</#if>
<#if itemKey="java_lang_String" && map['type'] == "text">
<td >${map[itemKey]}</td>
</#if>
<#if itemKey="fieldLabel" && map['type'] == "file">
<td >${map['fieldLabel']}</td>
</#if>
<#if itemKey="java_io_file" && map['type'] == "file">
<td >
<#list "${map[itemKey]}"?split(",") as x> //使用split函数,等同于java中的split函数
<a href="FlowDownServlet?fileName=${x}">${x}</a>
</#list>
</td>
</#if>
</#list>
<#if map['type'] == "select">
<td >${map['fieldLabel']}</td>
<td >
<#list form.fields as field>
<#if field.fieldInput.type == "select">
<select name="props['${field.fieldName}']">
<#list field.items as item>
<option <#if map['java_lang_String'] == item.value>selected</#if> value="${item.value}">${item.label}</option>
</#list>
</select>
</#if>
</#list>
</td>
</#if>
</tr>
</#list>
后台传递过来的数据
[java] view
plaincopy
List<LinkedHashMap<String,Object>> var = SubmitManager.getInstance().getProperty(documentId);
rootMap.put("var", var);
template.process(rootMap, out);
以前使用freemarker没有理解它的作用,现在有了进一步的了解,它其实和jstl一样,也是一套页面标签函数,这样就回答了一些人的疑问,想在freemarker中使用jstl,其实freemarker完全能满足jstl的功能.只不过它有自己的语法,不能直接获取页面request中的参数而已.学习一定要深入理解,反复实践才行.
相关文章推荐
- FTPClient上传和下载文件,中文乱码问题解决
- HDU 1071 - The area
- href链接传参乱码问题解决
- 颜色的几种不同的宏定义
- POJ 3342 Party at Hali-Bula (树形dp 树的最大独立集 判多解 好题)
- Asp.net MVC Request Life Cycle
- Atitit.异步编程 java .net php python js 对照
- Crontab定时任务配置
- [转]Failed to run the WC DB work queue associated with 错误的解决
- c语言,指针与数组--指针与二维数组2
- ie浏览器前缀特殊符号的识别
- 关于ueditor在javaweb项目中的集成
- hdu 5294 Tricks Device(2015多校第一场第7题)最大流+最短路
- 再谈c的内存管理及指针问题
- ArcGIS教程:编辑特征
- ADO.NET数据库访问技术
- poj 2299 Ultra-QuickSort 二分+线段树求逆序数
- 快速理解Docker - 容器级虚拟化解决方案
- 杭电5285二分图染色和并查集
- C++ I/O库流状态标志位