Struts2跟freemarker的配置例項講解(FTL檔案解析)
Freemarker 簡介
FreeMarker允許Java servlet保持圖形設計同應用程式邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的資料動態地生成 HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態HTML頁面的速度。
FreeMarker是一個模板引擎,一個基於模板生成文字輸出的通用工具,使用純Java編寫
FreeMarker被設計用來生成HTML Web頁面,特別是基於MVC模式的應用程式
雖然FreeMarker具有一些程式設計的能力,但通常由Java程式準備要顯示的資料,由FreeMarker生成頁面,通過模板顯示準備的資料。
FreeMarker不是一個Web應用框架,而適合作為Web應用框架一個元件
FreeMarker與容器無關,因為它並不知道HTTP或Servlet;FreeMarker同樣可以應用於非Web應用程式環境
FreeMarker更適合作為Model2框架(如Struts)的檢視元件,你也可以在模板中使用JSP標記庫
Freemarker 開發配置
原本對freemarker瞭解不多,只知道是一種模板語言,我的個人網站設計時都沒有考慮到使用freemarker,而是直接JSP展示。在網站上線推廣過程中瞭解到,各個搜尋引擎對動態的連結不夠友好,就是說對於網站中XXX.action?name=www.tiantianfilm.com 這種格式的連結,搜尋引擎不予收錄,網路蜘蛛更親奈.html的靜態連結,為了便於更方便的網站推廣,所以將網站整合URLREWRITER+FREEMARKER 技術改寫了全站連結。大家可以去網站看下效果,www.tiantianfilm.com 細心的人還是可以看見.action的痕跡的。 現在網站中有兩套連結,.action的動態連結,.html的靜態連結。連結的改寫純粹是為了便於網站的推廣,URLREWRITER過濾器的使用,FREEMARKER模板語言開發,這兩塊本人將在後續文章中做詳細講解,本文將結合網站詳細介紹STRUTS2+FREEMARKER的開發配置。
1、準備相應的JAR包,struts2-core- 2.0.11.2.jar,xwork-2.0.5.jar,ognl-2.6.11.jar,freemarker- 2.3.8.jar,commons-logging-1.0.4.jar
2、解壓縮struts2-core-2.0.11.2.jar複製META-INF/struts-tags.tld複製到工程WEB-INF目錄下,FREEMARKER中預設是不支援struts2標籤的,所以需將標籤庫匯入模板中。
3、修改WEB.XML檔案
新增STRUTS2過濾器
<filter>
<filter-name >struts2</filter-name>
<filter-class>
org.apacher.sturts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-parttern>/*</url-parttern>
</filter-mapping>
注意:對於網路上所說的要想在Freemarker中使用Struts2標籤必須配置一個新SERVLET
<servlet>
<servlet-name>JspSupportServlet</servlet-name>
<servlet-class>
org.apache.struts2.views.JspSupportServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
在本人的實踐中發現這步並非必須的,此處有待深入研究
4、接下來這步應該是最重要的,配置struts.xml檔案
<action name="getVediosByCategory" class="com.wang.vedio.action.IndexAction" method="getVediosByCategory">
<result name="success">/secondPage.jsp</result>
</action>
`
以上ACTIN配置為正常使用STRUTS2的配置,但在結合FREEMARKER中則需做如下改變
/WEB-INF/template/secondPage.ftl
注意:<reslutl>元素的type 屬性必須設定為freemarker,這是因為Freemarker模板檔案必須由Freemarker模板引擎來解析,而Struts2內部實現了 Freemarker模板引擎,但我們必須宣告返回結果型別為freemarker才可以
經過以上四步,STRUTS2+FREEMARKER配置完成,可以進行開發應用,下面展示一個簡單的例項
IndexAction.java
……
private Log log=LogFactory.getLog(IndexAction.class);
private String username;
private String password;
/**
* 登入處理
* @return
* @throws Exception
*/
public String getVediosByCategory() throws Exception{
log.info(“執行了登入方法getVediosByCategory()”);
return SUCCESS;
}
省略相應(getter,setter方法)
…
建立結果頁面:user.ftl
<#--
<#assign s=JspTaglibs["/WEB-INF/struts-tags.tld "]>
-->
<html>
<body>
歡迎<@s.property value="username"/>登入!
</body>
</html>
注意:
1、Struts2標籤在JSP 頁面中的寫法與在Freemarker模板檔案中的寫法不同。
Freemarker模板檔案是以<@s.tag>開始,以/@s.tag結束
2、Freemarker模板檔案的處理,通過Web容器是無法直接處理的,因此不要讓使用者直接訪問模板 檔案。在開發過程中,我們可以將Freemarker檔案直接放到Web工程的 WEB-INF目錄或其子目錄下(使用者無法訪問WEB-INF目錄下檔案),並在相應的struts-*.xml檔案中配置type="freemarker" 來輸出模板
相關推薦
Struts2跟freemarker的配置例項講解(FTL檔案解析)
Freemarker 簡介 FreeMarker允許Java servlet保持圖形設計同應用程式邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的資料動態地生成 HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態
Struts2跟freemarker的配置例項講解
Freemarker 簡介 FreeMarker允許Java servlet保持圖形設計同應用程式邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的資料動態地生成 HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態HTML頁面的速
思科交換機基本配置例項講解《一》
1、基本概念介紹 IOS: 網際網路作業系統,也就是交換機和路由器中用的作業系統 VLAN: 
例項講解php檔案操作
前言 本文主要講解php檔案的基本操作,包括檔案開啟、讀取、寫入、關閉、刪除。並通過這些知識實現一個簡易的商品訂購系統。 檔案建立/開啟 fopen:(建立並)開啟一個檔案或 URL 地址。(這
struts2和freemarker整合例項
最近要開始做專案了,專案中可能會用到Struts2和Freemarker整合,所以做了個例項給大家分享一下。 前期的配置web.xml,匯入jar包就不給大家介紹了,這些內容做過struts2的朋友的非常熟悉,如果有不會的大家可以找一下幫助文件或
在Eclipse中建立Freemarker所需要的*.ftl檔案
Freemarker所需要的*.ftl檔案在Eclipse中本是不支援的,需要自己新增,記錄下新增的過程。 首先,在Eclipse中新建一個file,字尾名為.ftl。 建立好之後,在其中新增程式碼
struts2中struts.xml和web.xml檔案解析及工作原理
web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmln
struts2 xml(核心配置檔案)
struts.xml (核心配置檔案) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts C
springboot2.0.5 freemarker配置檔案
# FREEMARKER (FreeMarkerProperties) # Whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of
springboot2.0.5 freemarker配置檔案
# FREEMARKER (FreeMarkerProperties) # Whether HttpServletRequest attributes are allowed to override (hide) controller generated model attr
Struts2的核心配置檔案標籤介紹
順著之前的struts2框架的搭建之後,電蟲又往下學習了struts2的核心配置檔案等知識,現在將筆記上傳~ Struts2的核心配置檔案 1、核心配置檔案內容預覽 2、基礎標籤介紹 2.1 struts 2.2 packag
freemarker之ftl檔案中引用靜態資源的問題
作為立志成為全棧工程師的人,肯定要前後端一起抓啦 在springboot中引入freemarker依賴 踩坑日誌的話我就不寫怎麼使用了吧。 freemarker格式檔案字尾是 ftl springbo
freemarker ftl 檔案中寫radio單選框select 下拉框並且帶if條件判斷
<#list themes as t> <#switch t.id> <#case "default"> <input name="console-options-theme-menu" ty
Eclipse中FreeMarker編輯ftl檔案出現標籤警告的解決辦法
在Eclipse下編輯ftl檔案,用HTML編輯器編輯,經常會出現一些標籤警告,可以這麼解決。1、Window->Preferences->Web->Html Files->Validation2、修改下面三個設定,將值設定成Ignore,就可以取消絕
MyBatis簡單例項及配置檔案解析
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/
log4j2自定義配置檔案位置和檔名(附log4j2.xml配置例項)
前言 我們使用log4j2一般做法是將log4j2.xml檔案放在資原始檔夾根目錄。對於有強迫症的開發者來說,我更喜歡在資原始檔夾下新建包或資料夾,然後把配置檔案放在裡面。本部落格將介紹如何自定義log4j2.xml檔案的位置和檔名。 web.xml配置
嵌入式 Makefile.am檔案的例項講解
Makefile.am是一種比Makefile更高層次的編譯規則,可以和configure.in檔案一起通過呼叫automake命令,生成Makefile.in檔案,再呼叫./configure的時候,就將Makefile.in檔案自動生成Makefile檔案了。所以Mak
例項講解:使用IBM heapAnalyzer分析heap dump檔案步驟
需求動機:解決 OOM( Object Out of Memory)問題以及系統調優 1.如何產生 java heap dump 當 JVM中物件過多, java堆( java heap)耗盡時,就會產生 java heap dump檔案。另外,可以使用工具或命令
springmvc整合freemarker,使用ftl檔案
0、需要一個已經配置好的springmvc專案,這裡就不多費口舌了 1、引入jar包:maven,一說還需要引入spring-context-support包 <dependency> <groupId>org.freemar
Struts2執行流程/配置檔案載入順序/架構相關描述
一丶為何設計配置檔案載入 Struts2框架起源,Struts2是一個基於MVC設計模式的web應用框架,它實質上相當於Servlet的功能.它是基於Struts1的基礎上集合優秀的web框架WebWork採用攔截器的機制來處理使用者請求.低耦合.