開發(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ā)系列
小項(xiàng)目需求分析或?qū)崿F(xiàn)的功能:
(1).用戶只有輸入正確的邀請(qǐng)碼之后才能進(jìn)行注冊(cè),否則填寫注冊(cè)信息之后提交沒有反應(yīng),還會(huì)停留在注冊(cè)頁面。
(2).用戶注冊(cè)之后可以上傳文件,也可以下載其中的文件。
分析:struts2并沒有實(shí)現(xiàn)文件的上傳和下載,我們需要到apache網(wǎng)站去下載commons-fileupload-1.2.1 和 commons-io-1.4 ,并把其中的核心jar包導(dǎo)入到工程。我們可以使用攔截器來實(shí)現(xiàn)功能(1)。
具體步驟:
1.新建web項(xiàng)目 命名為struts2demo

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

3.在web.xml文件中注冊(cè)struts2



















4.編寫輸入邀請(qǐng)碼的JSP頁面invite.jsp

















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

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

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






























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

















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




































































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

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

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














































































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




13.編寫registersuccess.jsp頁面



















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

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


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

























































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















































































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









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



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



19.編寫download.jsp頁面
















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

























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







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


點(diǎn)擊到下載頁面下載文件

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






















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

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





















































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