
? Struts2、Hibernate3、Spring2、Sitemesh、FreeMarker整合 收藏
1.Sitemesh
SiteMesh是一個網頁的外觀,布局,導航框架,它能夠將網頁中的靜態內容與動態內容進行分離,使整個網站擁有同一的外觀,統一的裝飾,并且易于今后更改外觀樣式設計。
2.FreeMarker
FreeMarker 我認為要比老掉牙的Velocity要強大得多,FreeMarker是一個模板引擎,一個基于模板生成文本輸出的通用工具,使用純Java編寫,被設計用來生成HTML Web頁面,特別是基于MVC模式的應用程序。雖然FreeMarker具有一些編程的能力,但通常由Java程序準備要顯示的數據,由 FreeMarker生成頁面,通過模板顯示準備的數據。
3.整合所需必備的包
這里只列出一些比較特殊的,其他的包在你使用MyEclipse進行整合的時候,會自動加入到classpath中去,就不再贅述。
struts2-sitemesh-plugin-2.1.6.jar是sitemesh與struts2整合必須的插件包;
struts2-spring-plugin-2.1.6.jar是Struts2與Spring2整合必須插件包;
freemarker-2.3.13.jar是FreeMarker必須包;
sitemesh-2.3是sitemesh的必須包;
4.整合后的Struts請求生命周期
5.web.xml文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
??? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
??? xsi:schemaLocation="http://java.sun.com/xml/ns/javaee?? http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
??? <!-- 配置Spring配置文件的路徑 -->
??? <context-param>
??????? <param-name>contextConfigLocation</param-name>
??????? <param-value>/WEB-INF/spring-*.xml</param-value>
??? </context-param>
??? <!-- ===========在Struts2 + Spring2 + Hibernate3 + sitemesh + freemarker整合的過程中,以下三個過濾器的順序千萬不能弄錯! -->
??? <!-- 第一 這個過濾器與Struts的核心過濾器協同工作,以便更容易與sitemesh整合 -->
??? <filter>
??????? <filter-name>struts-cleanup</filter-name>
??????? <filter-class>
??????????? org.apache.struts2.dispatcher.ActionContextCleanUp
??????? </filter-class>
??? </filter>
??? <!-- 第二 sitemesh的過濾器,同時也整合了Freemarker -->
??? <filter>
??????? <filter-name>sitemesh</filter-name>
??????? <filter-class>
??????????? org.apache.struts2.sitemesh.FreeMarkerPageFilter
??????? </filter-class>
??? </filter>
??? <!-- 第三 Struts2的控制過濾器 -->
??? <filter>
??????? <filter-name>struts2</filter-name>
??????? <filter-class>
??????????? org.apache.struts2.dispatcher.FilterDispatcher
??????? </filter-class>
??? </filter>
??? <filter-mapping>
??????? <filter-name>struts-cleanup</filter-name>
??????? <url-pattern>/*</url-pattern>
??? </filter-mapping>
??? <filter-mapping>
??????? <filter-name>sitemesh</filter-name>
??????? <url-pattern>/*</url-pattern>
??? </filter-mapping>
??????? <filter-mapping>
??????? <filter-name>struts2</filter-name>
??????? <url-pattern>/*</url-pattern>
??? </filter-mapping>
??
??? <!-- Spring的監聽器,以啟動spring的root webApplicationContext,來簡單地代理ContextLoader -->
??? <listener>
??????? <listener-class>
??????????? org.springframework.web.context.ContextLoaderListener
??????? </listener-class>
??? </listener>
??? <welcome-file-list>
??????? <welcome-file>index.jsp</welcome-file>
??? </welcome-file-list>
??? <login-config>
??????? <auth-method>BASIC</auth-method>
??? </login-config>
</web-app>
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
