
? Struts2、Hibernate3、Spring2、Sitemesh、FreeMarker整合 收藏
1.Sitemesh
SiteMesh是一個(gè)網(wǎng)頁(yè)的外觀,布局,導(dǎo)航框架,它能夠?qū)⒕W(wǎng)頁(yè)中的靜態(tài)內(nèi)容與動(dòng)態(tài)內(nèi)容進(jìn)行分離,使整個(gè)網(wǎng)站擁有同一的外觀,統(tǒng)一的裝飾,并且易于今后更改外觀樣式設(shè)計(jì)。
2.FreeMarker
FreeMarker 我認(rèn)為要比老掉牙的Velocity要強(qiáng)大得多,F(xiàn)reeMarker是一個(gè)模板引擎,一個(gè)基于模板生成文本輸出的通用工具,使用純Java編寫(xiě),被設(shè)計(jì)用來(lái)生成HTML Web頁(yè)面,特別是基于MVC模式的應(yīng)用程序。雖然FreeMarker具有一些編程的能力,但通常由Java程序準(zhǔn)備要顯示的數(shù)據(jù),由 FreeMarker生成頁(yè)面,通過(guò)模板顯示準(zhǔn)備的數(shù)據(jù)。
3.整合所需必備的包
這里只列出一些比較特殊的,其他的包在你使用MyEclipse進(jìn)行整合的時(shí)候,會(huì)自動(dòng)加入到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請(qǐng)求生命周期
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整合的過(guò)程中,以下三個(gè)過(guò)濾器的順序千萬(wàn)不能弄錯(cuò)! -->
??? <!-- 第一 這個(gè)過(guò)濾器與Struts的核心過(guò)濾器協(xié)同工作,以便更容易與sitemesh整合 -->
??? <filter>
??????? <filter-name>struts-cleanup</filter-name>
??????? <filter-class>
??????????? org.apache.struts2.dispatcher.ActionContextCleanUp
??????? </filter-class>
??? </filter>
??? <!-- 第二 sitemesh的過(guò)濾器,同時(shí)也整合了Freemarker -->
??? <filter>
??????? <filter-name>sitemesh</filter-name>
??????? <filter-class>
??????????? org.apache.struts2.sitemesh.FreeMarkerPageFilter
??????? </filter-class>
??? </filter>
??? <!-- 第三 Struts2的控制過(guò)濾器 -->
??? <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的監(jiān)聽(tīng)器,以啟動(dòng)spring的root webApplicationContext,來(lái)簡(jiǎn)單地代理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>
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

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