麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > JSP > 正文

java Freemarker頁面靜態化實例詳解

2024-09-05 00:23:00
字體:
來源:轉載
供稿:網友

Freemarker

FreeMarker 是一個用 Java 語言編寫的模板引擎,它基于模板來生成文本輸出。FreeMarker與 Web 容器無關,即在 Web 運行時,它并不知道 Servlet 或 HTTP。它不僅可以用作表現層的實現技術,而且還可以用于生成 XML,JSP 或 Java 等。
目前企業中:主要用 Freemarker 做靜態頁面或是頁面展示

總結:freemarker 模版引擎,可以使用 Freemarker 模版生成 html 頁面。

Freemarker 語法

 /**   * freemark入門案例   * freemark三要素:   * 1.freemark API   * 2.數據   * 3.模板文件:ftl文件   * @throws Exception    */  @Test  public void test1() throws Exception{   //創建freemarker核心配置對象,指定freemarker   Configuration cf = new Configuration(Configuration.getVersion());   //指定服務器模板文件所在路徑   cf.setDirectoryForTemplateLoading(new File("F://template"));   //指定模板文件編碼   cf.setDefaultEncoding("utf-8");   //從模板文件路徑下面獲取模板文件對象   Template template = cf.getTemplate("hello.ftl");   //創建map對象,封裝模板數據   Map<String,Object> maps = new HashMap<String,Object>();   maps.put("hello", "freemarker入門案例");   //創建一個輸出對象,把數據輸出daoHtml頁面   Writer out = new FileWriter(new File("F://template//out//quickstart.html"));   //生成Html頁面   template.process(maps, out);   //關閉資源   out.close();  }  /**   * freemarker模板語法處理特殊數據格式    * 例如:$0.2,20%   * 模板語法:$0.2:${price?string.currency}   * 20%:${price?string.percent}   * @throws Exception    */  @Test  public void test2() throws Exception{   //創建freemark核心配置對象,指定freemark版本   Configuration cf = new Configuration(Configuration.getVersion());   //指定模板文件所在路徑   cf.setDirectoryForTemplateLoading(new File("F://template"));   //設置模板編碼   cf.setDefaultEncoding("utf-8");   //從模板文件路徑下面取模板文件對象   Template template = cf.getTemplate("num.ftl");   //創建map對象,封裝模板數據   Map<String,Object> maps = new HashMap<>();   maps.put("price", 0.2);   //創建輸出對象,把數據輸出到Html頁面   Writer out = new FileWriter(new File("F://template//out//price.html"));   //生成Html頁面   template.process(maps, out);   //關閉資源   out.close();  }  /**   * 使用模板語法處理null值   * 模板文件處理語法:   * 1.?   * 語法:${username?default("張三")}   * 2.!   * 語法:   * ${username!}   * ${username!"默認值"}   * 3.if   * 語法:   * <#if username??>   * ${username}   * </#if>   * @throws Exception    */  @Test  public void test3() throws Exception{   //創建freemark核心配置對象,指定freemarker版本   Configuration cf = new Configuration(Configuration.getVersion());   //指定模板文件所在路徑   cf.setDirectoryForTemplateLoading(new File("F://template"));   //設置模板編碼   cf.setDefaultEncoding("utf-8");   //從模板文件路徑下獲取模板文件對象   Template template = cf.getTemplate("null.ftl");   //創建map對象,封裝模板數據   Map<String,Object> maps = new HashMap<>();   maps.put("username", null);   //創建輸出對象,把數據輸出到html頁面   Writer out = new FileWriter(new File("F://template//out//username.html"));   //生成html頁面   template.process(maps, out);   //關閉資源   out.close();  }  /**   * 使用模板語法處理pojo數據   * el表達式獲取數據:   * model.addAttribute("p",person);   * ${p.username}   * ${p.address}   * 模板語法獲取pojo數據   * model.addAttribute("p",person);   * ${p.username}   * ${p.address}   * @throws Exception    */  @Test  public void test4() throws Exception{   //創建freemark核心配置對象,指定freemarker版本   Configuration cf = new Configuration(Configuration.getVersion());   //指定模板文件所在路徑   cf.setDirectoryForTemplateLoading(new File("F://template"));   //設置模板編碼   cf.setDefaultEncoding("utf-8");   //從模板文件路徑下獲取模板文件對象   Template template = cf.getTemplate("person.ftl");   //創建map對象,封裝模板數據   Map<String,Object> maps = new HashMap<>();   //創建person對象   Person person = new Person();   person.setUsername("張三");   person.setAge(22);   maps.put("p", person);   //創建輸出對象,把數據輸出到html頁面   Writer out = new FileWriter(new File("F://template//out//person.html"));   //生成html頁面   template.process(maps, out);   //關閉資源   out.close();  }  /**   * 使用模板語法處理集合數據   * el表達式獲取數據:   * model.addAttribute("pList",pList);   * <c:foreach item="pList" var="p">   *  ${p.username}   *  ${p.age}   * </c:foreach>   * 模板語法獲取list數據   * model.addAttribute("pList",pList);   * <#list pList as p>   *  ${p.username}   *  ${p.age}   * </#list>   * 角標語法:${別名_index}   * @throws Exception    */  @Test  public void test5() throws Exception{   //創建freemark核心配置對象,指定freemarker版本   Configuration cf = new Configuration(Configuration.getVersion());   //指定模板文件所在路徑   cf.setDirectoryForTemplateLoading(new File("F://template"));   //設置模板編碼   cf.setDefaultEncoding("utf-8");   //從模板文件路徑下獲取模板文件對象   Template template = cf.getTemplate("list.ftl");   //創建map對象,封裝模板數據   Map<String,Object> maps = new HashMap<>();   //創建list集合   List<Person> pList = new ArrayList<>();   //創建person對象   Person person1 = new Person();   person1.setUsername("張三");   person1.setAge(22);   //創建person對象   Person person2 = new Person();   person2.setUsername("李四");   person2.setAge(24);   pList.add(person1);   pList.add(person2);   maps.put("pList", pList);   //創建輸出對象,把數據輸出到html頁面   Writer out = new FileWriter(new File("F://template//out//list.html"));   //生成html頁面   template.process(maps, out);   //關閉資源   out.close();  }  /**   * 使用模板語法處理時間類型數據   * 獲取數據日期:${today?date}   * 獲取數據時間:${today?time}   * 獲取數據日期時間:${today?datetime}   * 獲取數據日期時間格式化:${today?string('yyyy-MM-dd')}   * @throws Exception    */  @Test  public void test6() throws Exception{   //創建freemark核心配置對象,指定freemarker版本   Configuration cf = new Configuration(Configuration.getVersion());   //指定模板文件所在路徑   cf.setDirectoryForTemplateLoading(new File("F://template"));   //設置模板編碼   cf.setDefaultEncoding("utf-8");   //從模板文件路徑下獲取模板文件對象   Template template = cf.getTemplate("date.ftl");   //創建map對象,封裝模板數據   Map<String,Object> maps = new HashMap<>();   maps.put("today", new Date());   //創建輸出對象,把數據輸出到html頁面   Writer out = new FileWriter(new File("F://template//out//date.html"));   //生成html頁面   template.process(maps, out);   //關閉資源   out.close();  }

引入頁面

將另一個頁面引入本頁面時可用以下命令完成

Jsp 引入頁面:

Ftl 引入頁面:<#include “/include/head.ftl”>

Freemarker 整合 spring

配置整合 Freemarker spring 配置文件:

<!-- freemarker交給spring管理 --> <!-- 使用spring提供模板管理配置對象 --> <bean class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">  <!-- 模板路徑 -->  <property name="templateLoaderPath" value="/WEB-INF/fm/" />  <!-- 模板編碼 -->  <property name="defaultEncoding" value="utf-8" /> </bean>

創建模版對象

Freemarker 放入服務器:WEB-INF 文件夾下面:訪問資源文件,必須啟動服務器。

在 web.xml 加載 application 的 spring 配置文件:

<!-- 加載springmvc -->  <servlet>  <servlet-name>springmvc</servlet-name>  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  <init-param>   <param-name>contextConfigLocation</param-name>   <param-value>classpath:springmvc.xml,classpath:applicationContext-*.xml</param-value>  </init-param>  <load-on-startup>1</load-on-startup>  </servlet>

Nginx訪問

直接訪問,加載不了樣式資源,必須經過 http 服務器,才能加載靜態資源。

此時 nginx 作為 http 服務器來訪問靜態資源。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!


注:相關教程知識閱讀請移步到JSP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人三级在线播放 | 污黄视频在线播放 | 午夜精品福利视频 | 国产黄色毛片 | 国产亚洲在 | 国产一有一级毛片视频 | 亚洲国产精品久久久久久久久久 | 久久精品79国产精品 | 国产精品一品二区三区四区18 | 精品视频在线免费看 | 国产日韩在线观看视频 | 91成人午夜性a一级毛片 | 在线观看国产一区二区 | 国产高潮国产高潮久久久91 | 色综合网在线观看 | 午夜网站视频 | 亚洲最新色 | 模特三级在线观看 | 中国产一级毛片 | 免费观看视频在线观看 | 特色一级黄色片 | 黄网站在线观 | 亚洲特黄a级毛片在线播放 久久久入口 | 国产精品久久久久久一区二区三区 | 国产亚色 | 一级电影免费在线观看 | 欧美人的天堂一区二区三区 | 精品久久久久久国产 | 免费a级作爱片免费观看欧洲 | 黄色网址免费进入 | 国产剧情在线观看一区二区 | 免费毛片免费看 | 免费看成人毛片 | asian裸体佳人pics | 国产精品爱久久久久久久 | 久久久久一区二区三区四区五区 | 欧美精品一区二区久久 | 国产成人综合在线视频 | 日本a在线观看 | 久久久精品视 | 国产精品久久久久久久不卡 |