一篇很详细的Freemarker讲解(小demo、Servlet中运用、freemarker语言的各种)

33 篇文章 0 订阅
12 篇文章 0 订阅

CSDN学院学习Freemarker(自己总结,还望多提宝贵意见)


 一篇很详细的Freemarker讲解(小demo、Servlet中运用、freemarker语言的各种)


FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具FreeMarker允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。Struts2使用了Freemarker。

 

如果学过jsp,那么可以通过和jsp对照学习Freemarker。再对比Java中相关方法的调用,还有js的函数、参数等。

语言是相通的。灵活运用。

Template file 模板文件。

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

Freemarker与容器无关,因为把并不知道HTTP或Servlet;FreeMarker同样可以应用于非Web应用程序环境。

FreeMarker更适合作为Model2框架(如 Struts)的视图组件,你也可以在模板中使用JSP标记库。

Freemarker中用Map存储。

 

第一个Freemarker程序走起:

1、普通的Java项目:

2、引入Freemarker.jar

3、项目下建立模板目录:templates(普通文件夹)

4、在文件夹下建一个a.ftl文件:${user}你好!  

注:user是Freemarker中map数据中的key

普通Java程序的Freemarker使用四步骤:



Freemarker中放的是树状数据(xml、map、json)

t 1.process(root,out),读取root通过out输出。

 

Freemarker注释:<#--   -->

~数据类型

数据类型可以是 字符串、布尔值、Map、集合、数值。

字符串:直接指定字符串值使用单引号或者双引号限定。字符串中可以使用转义字符“\”。如果字符串内有大量的特殊字符,则可以在引号的前面加上一个字母r,则字符串内所有的字符都将直接输出。

数值:数值可以直接输入,不需要引号,Freemarker不支持科学计数法(12e6)。

布尔值:直接使用true或false,不使用引号。

Map对象:Map对象使用花括号包括,Map中的key-value对之间用冒号分隔,多组key-value对之间用逗号分隔。(有点像json数据对象)

注:Map 对象的key和value都是表达式,但key必须是字符串。

集合:集合用中括号包括,几何元素之间用逗号分隔。使用数字范围也可以表示一个数字集合,如1..5等同于集合[1,2,3,4,5];5..1等同[5,4,3,2,1]。(类似json中的数组)

其他:


If指令

大于、小于用gt、lt,如果用>或< 则可能被解释为标签的结束。

List指令:

Include指令:

<#include “文件”>

自定义指令(macro指令)宏指令:

在定义后,在用到的任何地方都可以调用。

带参的宏指令:其实类似于js中的参数(可以类型自动转换),参数通过空格分开。

<#macro m2 a b> 

${a}--${b}

</#macro>

引用:<@m2 “nihao”23> 这里可以传上面讲的数据类型,Freemarker自动转换。

<#nested>指令:类似jsp中的<#include>指令 还是<jsp:include>(这个我忘了?)

 

问题:宏定义中,有没有类似于方法的返回值?

 

命名空间:

注意,<#import>的起别名

其中<#assign>指令(注意in的使用),定义变量。(Freemarker中还有好几种定义变量的方法—-- 局部,全局),要搞清楚在用。这个变量知识,我随后专门博客介绍。

命名规则:


输出变量值:


解释一下:输出集合元素,如果想输出全部值,直接用索引即可(如:number)

       

解释:??相当于user!=null的判断

数据类型:

 

 

Servlet中使用Freemarker:


解释:放struts-tags.tld文件是为了让Freemarker也用struts标签。


  上面的配置是Freemarker对jsp的支持。

下面是struts.xml配置文件


下面是ftl文件:


解释:注意要想使用struts标签,要写最上面一句的引入代码。

      引用struts标签时,需要<@s  这种格式。(想了解更多,可以去百度Freemarker怎么用struts标签

 

用.ftl文件。我们可以查看源文件,便会发现模板和数据结合后被浏览器解析了。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

快乐升升

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值