一、Struts2簡介:
1.什么是Struts2?
著名的SSH三大框架分別為:表現層(Struts)、業務邏輯層(Spring),持久化層(Hibernate).
Struts2是在WebWork2基礎上發展而來的MVC框架,盡管Struts2與Struts在名字上很像,但代碼編寫風格上幾乎是完全不一樣的。
Struts2比Struts更優秀,修復了Struts的許多Bug和缺點。
2.Struct2框架的優點?
1.Struts2是非侵入式設計
Struts2的Action類為POJO類,即不依賴於Servlet API和Struts API。
2.Struts2提供了攔截器,利用攔截器可以進行AOP編程,實現如權限攔截等功能。
3.Struts2提供了類型轉換器,可以將特殊的請求參數轉換成需要的類型。
4.Struts2支持多種表現層技術,如JSP、freeMarker、vectocity等。
5.Struts2的輸入驗證可以對指定的方法進行驗證。
6.提供了全局范圍、包范圍和Action范圍的國際化資源文件管理實現。
二、搭建Struts2開發環境
1.新建一個Web Project工程。
2.導入所需要用到的Structs2的jar包,這里暫時先只導入Structs核心jar包。
Structs2所有jar包下載地址http://struts.apache.org/download.cgi#struts23163
核心jar包:
xwork-core-2.1.6.jar: Structs2框架的核心類庫
struts2-core-2.1.8.1.jar: XWork類庫,Structs2在其上構建
ognl-2.7.3.jar:對象圖導航語言(Object Graph Navigation Language),Structs2框架通過其讀寫對象屬性。
freemarker-2.3.15.jar: Structs2的UI標簽的模板使用FreeMarker編寫
commons-logging-1.0.4.jar: ASF出品的日志包,Structs2框架使用這個日志包來支持Log4J和JDK1.4+的日志記錄。
commons-fileupload-1.2.1.jar: 文件上傳組件,2.1.6版本后必須加入此文件。
方法一:
方法二:
3.復制Structs2.xml文件到項目的src目錄下。
Structs2.xml文件配置模板如下:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> </struts>
4.在Struct中,Structs2框架式通過Servlet啟動的。而在Structs2中,Structs2框架式通過Filter啟動的。
Structs2在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"> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
注意:自動Structs2.1.3以后,下面的FilterDispatcher已經標注為過時
<filter-class>org.apache.structs2.dispatcher.FilterDispatcher</fileter-class>
5.測試Structs2是否搭建成功,發布程序項目,開啟tomcat服務。