一、FreeMarker简介
FreeMarker 是一款模板引擎:即一种基于模板、用来生成输出文本(任何来自于 HTML格式的文本用来自动生成源代码)的通用工具。
FreeMarker 实际上是被设计用来生成 HTML 页面,尤其是通过实现了基于 MVC(Model View Controller, 模型-视图-控制器)模式的 Java Servlet 应用程序。
二、FreeMarker常用指令
模板 + 数据模型 = 输出
<1>、if指令使用示例
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>IF_Tag_Demo</title>
- <meta http-equiv="Content-Type" content="text/html;" charset="UTF-8">
- </head>
- <body>
- <#if x == 1>
- x is 1
- </#if>
- <br/>
- <#if x == 1>
- x is 1
- <#else>
- x is not 1
- </#if>
- <br/>
- <#if x == 1>
- x is 1
- <#elseif x == 2>
- x is 2
- <#elseif x == 3>
- x is 3
- </#if>
- </body>
- </html>
<2>、switch指令使用示例
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>Switch_Tag_Demo</title>
- <meta http-equiv="Content-Type" content="text/html;" charset="UTF-8">
- </head>
- <body>
- <#switch x>
- <#case 1>
- 1
- <#break>
- <#case 2>
- 2
- <#break>
- <#case 3>
- 3
- <#break>
- <#default>
- 0
- <#break>
- </#switch>
- </body>
- </html>
<3>、list指令使用示例
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>List_Tag_Demo</title>
- <meta http-equiv="Content-Type" content="text/html;" charset="UTF-8">
- </head>
- <body>
- <h1>${title}</h1><br/>
- <table>
- <tr>
- <td>学号</td>
- <td>姓名</td>
- <td>性别</td>
- </tr>
- <#list students as s>
- <tr>
- <td>${s.no}</td>
- <td>${s.name}</td>
- <td>${s.sex}</td>
- </tr>
- </#list>
- </table>
- </body>
- </html>
<4>、assign指令使用示例
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>Assign_Tag_Demo</title>
- <meta http-equiv="Content-Type" content="text/html;" charset="UTF-8">
- </head>
- <body>
- <#assign msg="世界你好!">
- <h1>${msg}</h1>
- </body>
- </html>
<5>、macro指令使用示例
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
- <html>
- <head>
- <title>Macro_Tag_Demo</title>
- <meta http-equiv="Content-Type" content="text/html;" charset="UTF-8">
- </head>
- <body>
- <#-- 定义 -->
- <#macro greet>
- <font size="+2">世界你好!</font>
- </#macro>
- <#macro greet2 person>
- <font size="+2">Hello ${person}!</font>
- </#macro>
- <#macro greet3 person color="black">
- <font size="+2" color="${color}">Hello ${person}!</font>
- </#macro>
- <#macro border>
- <table border=4 cellspacing=0 cellpadding=4>
- <tr>
- <td>
- <#nested> <#-- 嵌套内容 -->
- </td>
- </tr>
- </table>
- </#macro>
- <#-- 使用 -->
- <@greet></@greet> <br>
- <@greet2 person="xieke"/> <br>
- <@greet3 person="xieke"/> <br>
- <@greet3 person="xieke" color="red"/> <br>
- <@border>The bordered text</@border>
- </body>
- </html>
更多示例以及上述示例实际效果可以自行下载源代码查看,下载地址:http://pan.baidu.com/s/1jHEF6g2