日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Freemarker入门小案例(生成静态网页的其中一种方式)

發(fā)布時間:2025/7/14 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Freemarker入门小案例(生成静态网页的其中一种方式) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?其實生成靜態(tài)網頁的方式有好多種,我昨天看了一下,Freemarker是其中一種,但是Freemarker現(xiàn)在我們都用得比較少了,現(xiàn)在用得ActiveMQ用來發(fā)送信息到靜態(tài)頁面,不過想了一下這個小東西,還是想給大家分享一下,我的小小心得。

若項目為Maven項目,那么可以如下

在Pom.xml文件里面添加

<dependency><groupId>org.freemarker</groupId><artifactId>freemarker</artifactId><version>2.3.16</version></dependency>

?

CreateFreemarkerStatic.java

package com.llmj.DemoTest.Test;import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map;import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException;public class CreateFreeMarkStatic {/*** * @Description * @author xebest-pc* @param name* @return*/public Template getTemplate(String name) {try {// 通過Freemaker的Configuration讀取相應的ftlConfiguration cfg = new Configuration();// 設定去哪里讀取相應的ftl模板文件cfg.setClassForTemplateLoading(this.getClass(), "/ftl");// 在模板文件目錄中找到名稱為name的文件Template temp = cfg.getTemplate(name);return temp;} catch (IOException e) {e.printStackTrace();}return null;}/*** 控制臺輸出* @Description * @author xebest-pc* @param name* @param root*/public void print(String name, Map<String, Object> root){try {// 通過Template可以將模板文件輸出到相應的流Template temp = this.getTemplate(name);temp.process(root, new PrintWriter(System.out));} catch (TemplateException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}/*** 輸出HTML文件* @Description * @author xebest-pc* @param name* @param root* @param outFile*/public void fprint(String name, Map<String, Object> root, String outFile) {FileWriter out = null;try {// 通過一個文件輸出流,就可以寫到相應的文件中,此處用的是絕對路徑out = new FileWriter(new File("E:/workspace/freemarkprj/page/" + outFile));Template temp = this.getTemplate(name);temp.process(root, out);} catch (IOException e) {e.printStackTrace();} catch (TemplateException e) {e.printStackTrace();} finally {try {if (out != null)out.close();} catch (IOException e) {e.printStackTrace();}}}public static void main(String[] args){Map<String,Object> root=new HashMap<String,Object>();root.put("username", "zhangsan");//在ftl中要賦值的變量CreateFreeMarkStatic util= new CreateFreeMarkStatic();util.fprint("01.ftl", root, "01.html");}}

建立對應的實體類User.java

package com.llmj.DemoTest.entity; import java.io.Serializable;@SuppressWarnings("serial") public class User implements Serializable {private int id;private String name;private int age;private Group group;public Group getGroup() {return group;}public void setGroup(Group group) {this.group = group;}public User() {}public User(int id, String name, int age) {this.id = id;this.name = name;this.age = age;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}}

Group.java

package com.llmj.DemoTest.entity;public class Group {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}}

2 、在src目錄下建個ftl包,用于存放ftl模板文件,this.getClass() 就是根據當前類的路徑獲取模板文件位置

01.ftl

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>測試</title> </head><body> <h1>你好${username}</h1> </body> </html>

02.ftl

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head><body> <h1>你好: ${username}</h1> </body> </html>

?

03.ftl

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h1>${user.id}-----${user.name}-----${user.age}</h1> <#if user.age lt 12>${user.name}還是一個小孩 <#elseif user.age lt 18>${user.name}快成年 <#else>${user.name}已經成年 </#if> </body> </html>

04.ftl

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <#list users as user> ${user.id}---------${user.name}-------${user.age}<br/> </#list> </body> </html>

05.ftl

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head><body> <hr/> <#list users as user> ${user.id}---------${user.name}-------${user.age}<br/> </#list> </body> </html>

06.ftl

<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head><body> ${user.id}-------${user.name}------${user.group!} <#-- !后為空就不輸出 --> <#--${user.group.name!}--><#-- 按照以上的方式加! freemarker僅僅只會判斷group.name是不是空值 --> ${(user.group.name)!"1234"} ${(a.b)!"沒有a.b元素"}<#-- !:指定缺失變量的默認值 ??:判斷某個變量是否存在,返回boolean值 --> <#if (a.b)??> <#--if后不用加$-->不為空 <#else>為空 </#if> </body> </html>

然后最后附上測試類FreemarkTest.java

import java.util.HashMap; import java.util.List; import java.util.Map;import org.junit.Test;import com.llmj.DemoTest.entity.Group; import com.llmj.DemoTest.entity.User;public class FreemarkerTest {@Testpublic void test(){CreateFreeMarkStatic util = new CreateFreeMarkStatic();Map<String, Object> map = new HashMap<String, Object>();Group group = new Group();group.setName("IT");User user = new User();user.setId(001);user.setName("張三");user.setAge(12);user.setGroup(group);List<User> users = new ArrayList<User>();users.add(user);users.add(user);users.add(user);map.put("user", user);//普通EL賦值//util.fprint("01.ftl", map, "01.html" );//判斷//util.fprint("03.ftl", map, "03.html");//遍歷//util.print("05.ftl", map);//子元素判斷util.print("06.ftl", map);} }

?這樣就可以測試了

轉載于:https://www.cnblogs.com/yaomajor/p/5694624.html

總結

以上是生活随笔為你收集整理的Freemarker入门小案例(生成静态网页的其中一种方式)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩欧美国产高清91 | 免费黄av| 欧美爽爽爽 | 在线观看免费视频黄 | 精品在线免费观看视频 | 成人国产一区二区 | 国产一区二区不卡视频 | 天天爱天天色 | 日韩一级影片 | 国产精品亚洲综合 | 不卡的中文字幕 | 亚洲国产精品美女 | 日韩精品福利视频 | 囯产精品久久久久久 | 日本中文字幕在线视频 | 女性裸体无遮挡胸 | 中文字幕乱码一区 | 狠狠躁夜夜躁人人爽天天高潮 | 色妻av | 国产乱女淫av麻豆国产 | 欧美精品一级 | asian日本肉体pics | 在线视频精品免费 | 蜜桃av噜噜一区二区三区 | 国产亚洲美女精品久久久2020 | 毛片黄片免费看 | 国产精品天天干 | 亚洲品质自拍视频网站 | 91狠狠综合 | 亚洲一区二区三区在线播放 | 久久乐国产精品 | av激情久久 | 国产欧美在线观看 | 国产91色在线 | 亚洲第8页 | 各处沟厕大尺度偷拍女厕嘘嘘 | 97精品人人妻人人 | 国产老熟女伦老熟妇露脸 | 中文字幕在线播放一区 | 成人黄色短视频在线观看 | 中文字幕一区二区三区免费视频 | 国产日韩一区二区在线观看 | 中文字幕亚洲高清 | 91亚洲视频 | 涩涩成人| 日本一区二区三区免费视频 | 天天5g天天爽免费观看 | av资源免费 | 国产精品嫩草影院精东 | 黄色a视频 | 欧美视频在线观看免费 | 五月av综合av国产av | 毛利兰被扒开腿做同人漫画 | 91精品国产欧美一区二区成人 | 亚洲AV无码精品国产 | 欧美激情第二页 | 女人裸体免费网站 | 青娱乐在线免费观看 | 亚洲在线一区二区 | 娇妻之欲海泛舟无弹窗笔趣阁 | 亚洲精品第一页 | 欧美精品www | 亚洲精品乱码久久久久久蜜桃麻豆 | 国产91精品看黄网站在线观看 | 丰满肉嫩西川结衣av | 欧美在线另类 | 国内自拍视频在线播放 | 嫩模被强到高潮呻吟不断 | heyzo北岛玲在线播放 | 中文字幕11页中文字幕11页 | 午夜免费福利视频 | 9l视频自拍九色9l视频成人 | 中文字幕女同女同女同 | 一区二区国产精品 | 精品不卡一区二区三区 | 国产精品制服诱惑 | 一级色视频 | 93久久精品日日躁夜夜躁欧美 | 免费三片在线观看网站v888 | 狠狠操狠狠操狠狠操 | 欧美肥妇bwbwbwbxx | 男人天堂2014 | 亚洲第六页 | 成人精品免费 | 亚洲欧美日本一区二区三区 | 99在线视频观看 | 国产黑丝一区二区 | 少妇粉嫩小泬白浆流出 | 69看片| 久久久久久久久久久久久久久 | 一级免费看片 | 日韩日日夜夜 | 精品久久久久久久久久久久久久久久 | 一级片免费播放 | www欧美| 在线免费观看a视频 | 2018天天干天天操 | 国产自产21区 | 啪啪资源 |