下面将展示如何在Freemarker中输出控制器返回的Map值集合。即KV值。
控制器(HashController.java)
package com.test.controller; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import com.test.mode.User; /** * Freemarker输出Hash(Java中Map)中的值 * @author Administrator * */ @Controller @RequestMapping("/hashController") public class HashController { @RequestMapping("/printHash") public String printHash(ModelMap map) { // 用户列表 List<User> users = new ArrayList<User>(); users.add(new User(1, "张三", "男", 21)); users.add(new User(2, "李四", "男", 19)); users.add(new User(3, "王武", "女", 20)); users.add(new User(4, "赵牛", "男", 24)); users.add(new User(5, "李强", "女", 27)); // users hash变量的值 Map<String,Object> userInfo = new HashMap<String,Object>(); userInfo.put("users", users); userInfo.put("common", "当前输出的是用户列表信息"); userInfo.put("ip", "195.2.199.200"); // root下面的users hash变量 map.put("userInfo", userInfo); return "hash.ftl"; } }
freemarker模板(hash.ftl)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Freemarker输出Hash变量值</title> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="this is my page"> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> </head> <body> (1)输出hash变量中的值<br/> 提示:${userInfo.common}<br/> IP地址:${userInfo.ip}<br/> <#assign userList=userInfo.users> <#list userList as user> ${user.id} ${user.name} ${user.sex} ${user.age}<br/> </#list> <br/> </body> </html>
输出结果:
(1)输出hash变量中的值
提示:当前输出的是用户列表信息
IP地址:195.2.199.200
1 张三 男 21
2 李四 男 19
3 王武 女 20
4 赵牛 男 24
5 李强 女 27