首先,什么是Freemarker?
是一种模板引擎;
一种基于模板的、用来生成输出文本的通用工具;
基于java的开发包和类库;
能够生成各种文本:HTML、XML、Java源代码等等。
简单了解完Freemarker后,咱来看看它的用途
1、MVC框架中的View层组件(与jsp一致,也支持jsp标签);
2、代码生成工具(Mapper、Dao、Service Model、Controller);
3、页面栏目动态定制(发送邮件的HTML动态订制);
4、Html页面静态化(更加规范,不能编写java代码);
既然Freemarker可以替代jsp,那么它所带来的优点是什么,缺点又是什么呢?
【优点】:
1、可以彻底的分离表现层和业务逻辑;
怎么理解呢?众所周知,jsp页面中,可以编写java代码,如:<%@ String str = "abc"; %>,但是在Freemarker的页面(.ftl结尾)是不可以编写Java代码的,
以此达到彻底的分离表现层和业务逻辑。
2、访问页面快;
这又怎么理解呢?有深入了解过jsp的小伙伴应该知道,jsp页面最终是编译为servlet执行的,而Freemarker不需要编译,直接访问;
3、使得开发过程中的人员分工更加明确,提高开发效率。
作为程序开发人员,专注于系统实现,负责提供页面展示的数据即可;
而作为界面人员,只需专注于HTML文件、图像、以及Web页面的其他可视化方面,不用理会数据;
4、内置json支持;
一个json对象,Freemarker页面可以直接使用。如:${json.name} 等同于 json.getString("name");
了解完优点后,缺点也是必须了解滴~
【缺点】:
1、在修改模板后,可能会看到已经过期的数据。
2、变量必须要赋值,如果不赋值,那么就会抛出异常。
3、map限定key必须是string,其他数据类型无法操作。
重中之重来了,StringMVC+FreeMarker如何应用
FreeMarkerViewResolver:这就是Spring与Freemarker整合需要用到的解析器。
首先,在pom.xml添加一个依赖(maven会自动下载spring-webmvc所有依赖的包):
在springmvc.xml中配置freemarker视图解析器、模板路径
在controller里的RequestMapping的url是 /index ,即映射到index.ftl界面
好了,对Freemarker的介绍到这里就结束了,喜欢的点点关注~