FreeMarker模板引擎替代jsp的用法
2017-05-29 09:04
375 查看
选择freemarker的原因:
1、性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。
2、宏定义比jsp tag方便
3、内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便
4、支持jsp标签
5、可以实现严格的mvc分离
、概述
FreeMarker 是一个使用纯 Java 开发的模版引擎,一个基于模板生成文本输出的通用工具,FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序,虽然 FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由FreeMarker 生成页面,通过模板显示准备的数据(如下图)
FreeMarker 不是一个 Web 应用框架,而适合作为 Web 应用框架一个组件。FreeMarker 与容器无关,因为它并不知道 HTTP 或 Servlet;FreeMarker 同样可以应用于非Web应用程序环境,FreeMarker 更适合作为 Model2 框架(如 Struts)的视图组件,你也可以在模板中使用 JSP标记库。另外,FreeMarker是免费的。
一、Freemarker的准备条件
freemarker.2.3.16.jar
maven坐标
二、Freemarker生成静态页面的原理
Freemarker 生成静态页面,首先需要使用自己定义的模板页面,这个模板页面可以是最最普通的html,也可以是嵌套freemarker中的 取值表达式, 标签或者自定义标签等等,然后后台读取这个模板页面,解析其中的标签完成相对应的操作, 然后采用键值对的方式传递参数替换模板中的的取值表达式,做完之后 根据配置的路径生成一个新的html页面, 以达到静态化访问的目的。
三、FreeMarker模板文件主要由如下4个部分组成:
1、文本,直接输出的部分
2、注释,即<#–…–>格式不会输出
3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出
4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。
代码 示例:
springmvc Controller代码
模板文件 index.ftl
1、性能。velocity应该是最好的,其次是jsp,普通的页面freemarker性能最差(虽然只是几毫秒到十几毫秒的差距)。但是在复杂页面上(包含大量判断、日期金额格式化)的页面上,freemarker的性能比使用tag和el的jsp好。
2、宏定义比jsp tag方便
3、内置大量常用功能。比如html过滤,日期金额格式化等等,使用非常方便
4、支持jsp标签
5、可以实现严格的mvc分离
、概述
FreeMarker 是一个使用纯 Java 开发的模版引擎,一个基于模板生成文本输出的通用工具,FreeMarker 被设计用来生成 HTML Web 页面,特别是基于 MVC 模式的应用程序,虽然 FreeMarker 具有一些编程的能力,但通常由 Java 程序准备要显示的数据,由FreeMarker 生成页面,通过模板显示准备的数据(如下图)
FreeMarker 不是一个 Web 应用框架,而适合作为 Web 应用框架一个组件。FreeMarker 与容器无关,因为它并不知道 HTTP 或 Servlet;FreeMarker 同样可以应用于非Web应用程序环境,FreeMarker 更适合作为 Model2 框架(如 Struts)的视图组件,你也可以在模板中使用 JSP标记库。另外,FreeMarker是免费的。
一、Freemarker的准备条件
freemarker.2.3.16.jar
maven坐标
<dependency> <!--在spring中使用Freemarker这个必不可少,否则报错--> <groupId>org.springframework</groupId> <artifactId>spring-context-support</artifactId> <version>4.3.6.RELEASE</version> </dependency> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.16.</version> </dependency>
二、Freemarker生成静态页面的原理
Freemarker 生成静态页面,首先需要使用自己定义的模板页面,这个模板页面可以是最最普通的html,也可以是嵌套freemarker中的 取值表达式, 标签或者自定义标签等等,然后后台读取这个模板页面,解析其中的标签完成相对应的操作, 然后采用键值对的方式传递参数替换模板中的的取值表达式,做完之后 根据配置的路径生成一个新的html页面, 以达到静态化访问的目的。
三、FreeMarker模板文件主要由如下4个部分组成:
1、文本,直接输出的部分
2、注释,即<#–…–>格式不会输出
3、插值(Interpolation):即${..}或者#{..}格式的部分,将使用数据模型中的部分替代输出
4、FTL指令:FreeMarker指令,和HTML标记类似,名字前加#予以区分,不会输出。
代码 示例:
springmvc Controller代码
@Controller public class FreemarkerController { @RequestMapping("/index") public String Add(Model model,HttpServletRequest request, HttpServletResponse response) { //java往ftl模板中插入数据 model.addAttribute("url", "http://freemarker.org/"); model.addAttribute("name", "xiaming"); model.addAttribute("message", "Welcome to use Freemarker"); List<User> users = new ArrayList<User>(); User u = new User(); u.setId(10080); u.setName("zhangsan"); u.setAge(118); users.add(u); model.addAttribute("users", users); return "index"; } }
模板文件 index.ftl
<!DOCTYPE html> <html> <head> <title>freemarker-web测试</title> </head> <meta http-equiv="content-ty b453 pe" content="text/html;charset=utf-8"> <title>Insert title here</title> </head> <body> <h1>Welcome to here!</h1> <!-- ftl模板中取数据 --> <a href="${url}">${name!},${message!}</a><br/> <!-- name值为null,取name值会报错,可写成 name!"这是null值" / name!"" / name! --> <div> <#list users as u> 编号:${u.id}/名字:${u.name}/年龄:${u.age} </#list> </div> </body> </html>
相关文章推荐
- JSP和模板引擎(如freemarker)的根本不同之处
- Java操作FreeMarker模板引擎的基本用法示例小结
- Jsp、Velocity、FreeMarker这三种模板引擎的区别
- FreeMarker模板引擎
- Java模板引擎 FreeMarker
- 两步掌握freemarker模板引擎之语法学习
- Java模板引擎 FreeMarker
- 简单描述Java模板引擎 FreeMarker相关知识
- Servlet 3.0笔记之使用Freemarker替代JSP,更快更轻更高效
- Java模板引擎 FreeMarker 官方最新版下载
- jade模板引擎简明用法
- Mustache模板技术,一个比freemarker轻量级的模板引擎
- Java模板引擎 FreeMarker
- asp.net模板引擎Razor调用外部方法用法实例
- JavaScript模板引擎用法实例
- java代码通过freemarker模板实现自动生成dao,model,service,jsp
- Java模板引擎 FreeMarker介绍
- Java模板引擎 FreeMarker
- Freemarker模板引擎
- 模板引擎Crox用法大全(更新版)