1. 程式人生 > >Struts2跟freemarker的配置例項講解(FTL檔案解析)

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" 來輸出模板

相關推薦

Struts2freemarker配置例項講解(FTL檔案解析)

Freemarker 簡介 FreeMarker允許Java servlet保持圖形設計同應用程式邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的資料動態地生成 HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態

Struts2freemarker配置例項講解

Freemarker 簡介      FreeMarker允許Java servlet保持圖形設計同應用程式邏輯的分離,這是通過在模板中密封HTML完成的。模板用servlet提供的資料動態地生成 HTML。模板語言是強大的直觀的,編譯器速度快,輸出接近靜態HTML頁面的速

思科交換機基本配置例項講解《一》

1、基本概念介紹        IOS:       網際網路作業系統,也就是交換機和路由器中用的作業系統        VLAN: 

例項講解php檔案操作

前言 本文主要講解php檔案的基本操作,包括檔案開啟、讀取、寫入、關閉、刪除。並通過這些知識實現一個簡易的商品訂購系統。 檔案建立/開啟 fopen:(建立並)開啟一個檔案或 URL 地址。(這

struts2freemarker整合例項

        最近要開始做專案了,專案中可能會用到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

freemarkerftl檔案中引用靜態資源的問題

作為立志成為全棧工程師的人,肯定要前後端一起抓啦 在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採用攔截器的機制來處理使用者請求.低耦合.