網頁靜態化之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、執行測試程式碼
在瀏覽器輸入檔案輸出路徑,結果如下:
相關文章
- 【靜態化平臺】☞(一)網頁靜態化服務網頁
- 靜態網頁與動態網頁的區別網頁
- 靜態網頁和動態網頁的區別網頁
- java 做頁面靜態化Java
- echarts map靜態套用網頁Echarts網頁
- PHP 實現頁面靜態化PHP
- 網站靜態化思想網站
- 深入瞭解網站中的靜態網頁和動態網頁的相關知識網站網頁
- Laravel頁面靜態化最佳實踐Laravel
- 頁面靜態化技術演進
- 【靜態頁面架構】CSS之表格架構CSS
- 靜態網頁使用Node.js跨域代理服務網頁Node.js跨域
- 談談網站靜態化網站
- 靜態網頁簡易生成方法網頁
- Django構建靜態網頁站點Django網頁
- php的ob函式實現頁面靜態化PHP函式
- 《Dokcer的使用》(四) 實戰之Nginx+靜態網站部署Nginx網站
- 超級漂亮的網上花店html靜態頁面HTML
- Asp.net實現靜態頁-新增新聞生成靜態頁ASP.NET
- 關於論壇JSP頁面靜態化JS
- 【靜態頁面架構】CSS之盒子模型架構CSS模型
- 【靜態頁面架構】CSS之選擇器架構CSS
- [譯] 用 Workers 讓靜態網站動態化網站
- 靜態網頁高仿正方教育系統網頁(HTML+CSS)網頁HTMLCSS
- 網頁渲染方式-從靜態頁面到服務端渲染網頁服務端
- Nginx 部署靜態頁面Nginx
- php 生成靜態頁面PHP
- PHP生成靜態頁面PHP
- 正則表達示在ASP.NET中用來生成靜態網頁的使用ASP.NET網頁
- 使用vuepress搭建GitHub pages靜態部落格頁面VueGithub
- php頁面靜態化技術;學習筆記PHP筆記
- 靜態頁分頁功能js程式碼JS
- 網頁開發方式-從靜態頁面到服務端渲染網頁服務端
- 【雜談】一個簡易的靜態網頁伺服器網頁伺服器
- 如何將打包好的靜態網頁部署至伺服器網頁伺服器
- 用HTML+CSS編寫一個計科院網站首頁的靜態網頁HTMLCSS網站網頁
- Python靜態網頁爬蟲專案實戰Python網頁爬蟲
- python虛擬環境與偽靜態網頁Python網頁