網頁靜態化之freemaker的使用
一、基礎知識點
1、同型別的產品還有Apache旗下Java開發的velocity;
2、Java語言編寫的模板引擎,基於模板生成文字檔案,比如生成Java、xml、jsp;
3、模板自己定義,資料也自己定義,但可以根據freemaker提供的方法使用自己定義的模板和資料生成想要的靜態頁面;
4、與web容器無關;
5、有資料和模板即可生成新的檔案;
6、用於網頁靜態化,提高訪問效率,適用於分散式系統;
二、使用步驟
1、專案pom檔案中引入freemaker的jar包
2、編寫如下測試程式碼
@Test
public void testFreemaker()throws Exception{
//建立一個freemaker的模板
//建立一個configuration物件,並設定當前freemaker的版本號
Configuration configuration = new Configuration(Configuration.getVersion());
//設定模板路徑
configuration.setDirectoryForTemplateLoading(new File("D:\\dev_taotao\\taotao-item-web\\src\\main\\webapp\\WEB-INF\\ftl"));
//設定模板的編碼格式為utf-8
configuration.setDefaultEncoding("utf-8");
//獲取模板物件
// Template template = configuration.getTemplate("hello.ftl");
Template template = configuration.getTemplate("student.ftl");
//設定資料
Map data = new HashMap();
data.put("hello","hello freemaker");
Student student = new Student(1,"靜靜",26,"北京豐臺區");
data.put("student",student);
List list = new ArrayList();
list.add( new Student(1,"靜靜1",26,"北京豐臺區"));
list.add( new Student(2,"靜靜1",26,"北京豐臺區"));
list.add( new Student(3,"靜靜2",26,"北京豐臺區"));
list.add( new Student(4,"靜靜3",26,"北京豐臺區"));
list.add( new Student(5,"靜靜4",26,"北京豐臺區"));
data.put("studentList",list);
//新建輸出流
Writer writer = new FileWriter("D:\\dev_taotao\\taotao-item-web\\src\\main\\webapp\\WEB-INF\\out\\student.html");
//寫入模板
template.process(data,writer);
//關閉流
writer.close();
}
3、在對應ftl目錄下新建模板檔案student.ftl,內容如下,按照html語法和freemaker語法寫即可:
本測試主要實現元素檢視,物件內容輸出和內容迴圈展現
<html>
<head>
<title>測試頁面</title>
</head>
<body>
學生資訊:<br>
學號:${student.id}<br>
姓名:${student.name}<br>
年齡:${student.age}<br>
家庭住址:${student.address}<br>
學生列表:<br>
<table border="1">
<tr>
<th>序號</th>
<th>學號</th>
<th>姓名</th>
<th>年齡</th>
<th>家庭住址</th>
</tr>
<#list studentList as stu>
<#if stu_index%2==0>
<tr bgcolor="aqua">
<#else>
<tr bgcolor="#ff7f50">
</#if>
<td>${stu_index}</td>
<td>${stu.id}</td>
<td>${stu.name}</td>
<td>${stu.age}</td>
<td>${stu.address}</td>
</tr>
</#list>
</table>
</body>
</html>
4、執行測試程式碼
在瀏覽器輸入檔案輸出路徑,結果如下:
相關文章
- 靜態網頁與動態網頁的區別網頁
- echarts map靜態套用網頁Echarts網頁
- 構建靜態頁面 之 [ 列表 ]
- 構建靜態頁面 之 [ 表格 ]
- PHP 實現頁面靜態化PHP
- 一個簡單靜態網頁網頁
- 網站靜態化思想網站
- 靜態網頁使用Node.js跨域代理服務網頁Node.js跨域
- 構建靜態頁面 之 [ 表單 ]
- 【靜態頁面架構】CSS之表格架構CSS
- Laravel頁面靜態化最佳實踐Laravel
- 頁面靜態化技術演進
- 《Dokcer的使用》(四) 實戰之Nginx+靜態網站部署Nginx網站
- 超級漂亮的網上花店html靜態頁面HTML
- 【靜態頁面架構】CSS之盒子模型架構CSS模型
- 【靜態頁面架構】CSS之選擇器架構CSS
- php網站首頁動態地址修改,如何將PHP網站首頁的動態地址改為靜態地址PHP網站
- 靜態網頁高仿正方教育系統網頁(HTML+CSS)網頁HTMLCSS
- 網頁渲染方式-從靜態頁面到服務端渲染網頁服務端
- [譯] 用 Workers 讓靜態網站動態化網站
- Python靜態網頁爬蟲專案實戰Python網頁爬蟲
- python虛擬環境與偽靜態網頁Python網頁
- 靜態網站如何修改,輕鬆更新網頁內容網站網頁
- Nginx 部署靜態頁面Nginx
- 靜態頁面是啥
- 使用vuepress搭建GitHub pages靜態部落格頁面VueGithub
- 易優cms網站SEO模組URL配置偽靜態靜態頁面設定網站
- 用HTML+CSS編寫一個計科院網站首頁的靜態網頁HTMLCSS網站網頁
- 如何將打包好的靜態網頁部署至伺服器網頁伺服器
- 【雜談】一個簡易的靜態網頁伺服器網頁伺服器
- 網頁開發方式-從靜態頁面到服務端渲染網頁服務端
- static靜態方法的使用
- 1.1 koa靜態官網之教程簡介
- 【靜態頁面架構】CSS之顏色與單位架構CSS
- 用typescript寫靜態頁面TypeScript
- Laravel diary_靜態頁面Laravel
- 環境的部署和建立靜態頁面
- Freemaker模板指令