一、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