freemarker:常用指令、null值的处理、基本数据类型、自定义指令

1、常用指令

(1)if

数据:

root.put("Student",new Student("zhai",32));

模板:

<body>
<#if Student.age lt 12>
${Student.sname}小孩子
<#elseif  Student.age gt 18>
${Student.sname}成年
<#else>
${Student.sname}你好
</#if>
</body>

输出:

 (2)include

数据:

 root.put("Student",new Student("zhai",32));

要被包含的文件:

 引入要被包含的文件:

 输出文件:

2、null值的处理

(1)null值报错

从一个不存在的属性取出数据为null:

 报错:

 (2)null值的处理

 测试:

3、基本数据类型

(1)数字和字符串

定义:

输出

 (2)不能直接输出数字和字符串以外的类型,需要转换为字符串以后才能输出

定义数据:

 取出数据:

4、自定义指令

(1)定义自定义指令并传递参数

 输出:

5、总结

(1)概念

freemarker是一个模板引擎,虽然具有一定的编程能力,但是通常将其作为模板而数据通过java程序提供,模板+数据=页面

freemarker不是一个web应用的框架,而适合作为web应用框架的一个组件

(2)好处

将逻辑与显示相分离,数据直接从java代码中获取,复杂的业务逻辑在java代码中而不是交给视图层

提高开发效率:节省了代码的编译次数(jsp页面需要转换为servlet后才能执行)

有利于开发的分工:前端人员只需关注页面的设计不用关心业务逻辑的实现,同样,后端开发人员书写业务逻辑提供数据

(3)缺点

数据在更新后需要及时更新模板,否则可能会看到过期数据

FreeMarker中的变量必须要赋值,如果不赋值,那么就会抛出异常,可以用if/elseif/else 指令进行判断,但是又会增加代码的复杂程度

,FreeMarker的map限定key必须是string,其他数据类型无法操作

原文地址:https://www.cnblogs.com/zhai1997/p/13511698.html