開發(fā)環(huán)境:jdk1.6 + tomcat6.0.14 + Myeclipse6.0 + Struts2.0.14 + commons-fileupload-1.2.1 + commons-io-1.4
學(xué)習(xí)教程:風(fēng)中葉 浪曦_Struts2應(yīng)用開發(fā)系列
小項目需求分析或?qū)崿F(xiàn)的功能:
(1).用戶只有輸入正確的邀請碼之后才能進(jìn)行注冊,否則填寫注冊信息之后提交沒有反應(yīng),還會停留在注冊頁面。
(2).用戶注冊之后可以上傳文件,也可以下載其中的文件。
分析:struts2并沒有實現(xiàn)文件的上傳和下載,我們需要到apache網(wǎng)站去下載commons-fileupload-1.2.1 和 commons-io-1.4 ,并把其中的核心jar包導(dǎo)入到工程。我們可以使用攔截器來實現(xiàn)功能(1)。
具體步驟:
1.新建web項目 命名為struts2demo

2.向工程中導(dǎo)入所需要的jar包 必要的jar包有七個

3.在web.xml文件中注冊struts2



















4.編寫輸入邀請碼的JSP頁面invite.jsp

















5.在Tomcat的server.xml中加入工程

6.啟動Tomcat服務(wù)器 測試當(dāng)前所做是否有錯誤

以上表明當(dāng)前設(shè)置沒有錯誤!
7.在src下新建com.demo.action包,并在其中新建InviteAction類,此類要繼承ActionSupport類






























類中規(guī)定只有輸入的驗證碼為220081078,才能進(jìn)入到注冊頁面,否則會出現(xiàn)錯誤的提示信息并回到原頁面繼續(xù)輸入。
8.在src下新建struts.xml文件,在struts.xml文件中對InviteAction進(jìn)行注冊

















9.新建register.jsp頁面,并加入如下代碼




































































10.對以上所做工作進(jìn)行測試
如果輸入錯誤的邀請碼 如2200810888 則顯示結(jié)果如下

如果輸入正確的邀請碼 如220081078 則轉(zhuǎn)入到注冊頁面 測試成功!

11.在action包中創(chuàng)建RegisterAction類 并編寫如下代碼














































































12.在struts.xml文件中對RegisterAction進(jìn)行注冊 在package下加入如下代碼




13.編寫registersuccess.jsp頁面



















14.對上述工作進(jìn)行測試
如果進(jìn)行不合法的注冊 如沒有填入必填項或者輸入長度不合法 會出現(xiàn)相關(guān)錯誤提示信息

如果輸入合法注冊信息,將轉(zhuǎn)到注冊成功頁面。


15.編寫文件上傳頁面upload.jsp代碼

























































16.編寫UploadAction類代碼 將文件上傳到upload文件夾















































































17.在struts.xml文件中對UploadAction進(jìn)行注冊









18.對上傳文件是的錯誤信息進(jìn)行改進(jìn),系統(tǒng)提供的錯誤信息(如文件大小或類型不合法)可讀性很差。
在struts.xml中加入如下語句



在src目錄下新建文件message.properties ,文件內(nèi)容為



19.編寫download.jsp頁面
















20.編寫DownloadAction類代碼 假設(shè)我們要下載的是upload文件夾下的Struts2.ppt文件

























21.在struts.xml文件中對DownloadAction進(jìn)行注冊 要注意其中的參數(shù)名稱







22.對以上步驟進(jìn)行測試
上傳文件類型不合法
上傳合法內(nèi)容,如我們上傳三個ppt文件 則能成功


點擊到下載頁面下載文件

23.實現(xiàn)邀請碼功能 以上并沒有實現(xiàn)邀請碼的功能,即用戶可以直接進(jìn)入到注冊頁面進(jìn)行注冊。我們需要編寫一個攔截器實現(xiàn)該功能。
(1)編寫InviteInterceptor攔截器代碼






















(2)改寫InviteAction的execute()方法 加入如下語句

(3)在struts.xml中注冊攔截器 并在register的action中加入攔截器
最終struts.xml的代碼





















































24.最后的測試
如果沒有進(jìn)行邀請碼的驗證 直接進(jìn)入到注冊頁面進(jìn)行注冊 將不成功。達(dá)到項目需求。
總結(jié):這是最近三天學(xué)習(xí)的結(jié)果,很喜歡風(fēng)中葉老師的講解。他沒有給我們代碼,卻每一步都講得很仔細(xì),還帶著我們一步步地看相關(guān)的幫助文檔,會繼續(xù)支持風(fēng)中葉老師的!開發(fā)還是要自己多看看各種文檔,這樣才能學(xué)習(xí)到正宗的知識!
由于隨筆附件大小有限制 上傳的代碼中刪除了struts2的5個jar包 可自行加入
本隨筆代碼 代碼