Struts2 入門的學習筆記。
概念知識不寫于此處了,直接進入項目實現部分。
步驟:
1. 在MyEclipse中創建Web Project工程。
2. 下載struts2的jar包,我下載的版本struts-2.1.6,解壓后有4個文件夾有lib(jar包),apps(案例程序),docs(文檔),src(源文件)。
選擇以下jar包導入到工程當中:commons-fileupload-1.2.1,commons-io-1.3.2,commons-logging-1.1,freemarker-2.3.13,ognl-2.6.11,struts2-core-2.1.6,xwork-2.1.2。
3. 創建struts.xml文件在src根目錄下,代碼如下:
<?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>
<constant name="struts.devMode" value="true" /> 設置struts2為開發模式,當修改struts.xml文件不用重新部署項目
<package name="default" namespace="/" extends="struts-default"> namespace查詢action的路徑設置
<action name="hello"> action的名稱
<result>
/Hello.jsp result對應action的結果
</result>
</action>
</package>
</struts>
4. 配置web.xml文件,代碼如下:
固定寫法,把struts2配置成一個過濾器。
<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>
5. 在WebRoot下創建一個Hello.jsp文件。
6. 部署項目啟動服務器,在瀏覽器地址欄輸入http://localhost:8083/struts2/hellos或者http://localhost:8083/struts2/hello.action。
可以有action也可以沒有。
注意:struts2.1.6這個版本有一個bug是當你開啟了struts2的開發模式時,必須服務器路徑不能有空格出現,否則服務器無法正確啟動,這點需要各位調整。
Struts2的執行過程:客戶端請求通過Url,找到對應項目中的web.xml,又根據過濾器做doFilter操作,找到struts.xml文件做namespace,action,result操作,按result進行forward到對應的視圖,最后把該視圖響應給客戶端。
執行的時序圖如下:
