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

1、常用指令

(1)if

数据:

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

模板:


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

输出:

 

 (2)include

数据:

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

要被包含的文件:

freemarker:常用指令、null值的处理、基本数据类型、自定义指令_第1张图片

 

 引入要被包含的文件:

 

 输出文件:

 

 

2、null值的处理

(1)null值报错

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

 

 报错:

freemarker:常用指令、null值的处理、基本数据类型、自定义指令_第2张图片

 

 (2)null值的处理

 

 测试:

 

 

3、基本数据类型

(1)数字和字符串

定义:

freemarker:常用指令、null值的处理、基本数据类型、自定义指令_第3张图片

 

输出

 

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

定义数据:

freemarker:常用指令、null值的处理、基本数据类型、自定义指令_第4张图片

 

 取出数据:

 

 

4、自定义指令

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

freemarker:常用指令、null值的处理、基本数据类型、自定义指令_第5张图片

 

 输出:

freemarker:常用指令、null值的处理、基本数据类型、自定义指令_第6张图片

 

 

5、总结

(1)概念

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

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

(2)好处

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

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

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

(3)缺点

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

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

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

 

你可能感兴趣的:(freemarker:常用指令、null值的处理、基本数据类型、自定义指令)