freemarker的指令介绍

freemarker的核心指令

测试中的模型数据:

  @RequestMapping("/test1")
			    public String freemarker(Map<String, Object> map){
			        //向数据模型放数据
			        map.put("name","黑马程序员");
			        Student stu1 = new Student();
			        stu1.setName("小明");
			        stu1.setAge(18);
			        stu1.setMondy(1000.86f);
			        stu1.setBirthday(new Date());
			        Student stu2 = new Student();
			        stu2.setName("小红");
			        stu2.setMondy(200.1f);
			        stu2.setAge(19);
			//        stu2.setBirthday(new Date());
			        List<Student> friends = new ArrayList<>();
			        friends.add(stu1);
			        stu2.setFriends(friends);
			        stu2.setBestFriend(stu1);
			        List<Student> stus = new ArrayList<>();
			        stus.add(stu1);
			        stus.add(stu2);
			        //向数据模型放数据
			        map.put("stus",stus);
			        //准备map数据
			        HashMap<String,Student> stuMap = new HashMap<>();
			        stuMap.put("stu1",stu1);
			        stuMap.put("stu2",stu2);
			        //向数据模型放数据
			        map.put("stu1",stu1);
			        //向数据模型放数据
			        map.put("stuMap",stuMap);
			        //返回模板文件名称
			        return "test1";
			    }

List指令:

相当于java中的for循环,它两的效果是相同都是遍历集合中的所有元素:
在这里插入图片描述
得到的结果就是集合中的所有的数据:
在这里插入图片描述
ps:_index:得到循环的下标,使用方法是在stu后边加"_index",它的值是从0开始

遍历Map数据

若在传来的map中取出一个map。想要将其遍历,则可以使用:

在这里插入图片描述
在这里插入图片描述
得到的输出结果为:
在这里插入图片描述

if指令:

if 指令即判断指令,是常用的FTL指令,freemarker在解析时遇到if会进行判断,条件为真则输出if中间的内容,否则跳过内容不再输出。

使用方法:

<td <#if stu.name =='小红'>style="background:red;"</#if>>${stu.name}</td>

得到的结果:
在这里插入图片描述

空值处理:

判断某变量是否存在使用 “??” 用法为:variable??,如果该变量存在,返回true,否则返回false
例:为防止stus为空报错可以加上判断如下:

缺失变量默认值使用 “!” 使用!要以指定一个默认值,当变量为空时显示默认值。
例: ${name!’’}表示如果name为空显示空字符串。
如果是嵌套对象则建议使用()括起来。
在这里插入图片描述
缺失变量默认值使用 “!” 使用!要以指定一个默认值,当变量为空时显示默认值。

例: ${name!’’}表示如果name为空显示空字符串。

猜你喜欢

转载自blog.csdn.net/qq_38116774/article/details/87977135