STRUTS 2已經(jīng)出來(lái)一陣子了
可是相關(guān)的學(xué)習(xí)資料 (哪怕僅僅是英文資料)也是少得可憐
所以我給出個(gè)項(xiàng)目示例,希望大家多多交流和指點(diǎn)
開(kāi)發(fā)環(huán)境:eclipse3.1+jdk5.0+tomcat5.5+struts2
主要技術(shù)框架:struts2+sping+ibatis(以后再考慮hibernate的版本吧)
鍵入http://localhost:8080/struts/pages/example/example-index.jsp
訪問(wèn)首頁(yè)
在首頁(yè)一共給出6個(gè)鏈接:
1 第一個(gè)鏈接給出的是一個(gè)查詢功能
輸入exampleId獲得整個(gè)example對(duì)象的所有屬性(其實(shí)一共也就2個(gè)
)
示例中使用了客戶端驗(yàn)證
如果要在STRUTS2中使用驗(yàn)證功能 那么,
記得在<s:form>標(biāo)簽中使用 validate="true"屬性 同時(shí)配置相應(yīng)的validation.xml
2 同樣的功能 只是換成用VELOCITY模板的形式輸出
3 查詢出所有的example對(duì)象
4 用AJAX技術(shù)實(shí)現(xiàn)查詢功能
相信這是STRUTS2里面比較棒的功能了
它在標(biāo)簽中直接集成了AJAX技術(shù),
如果開(kāi)發(fā)人員不懂AJAX也沒(méi)關(guān)系,
需要做的僅僅是在<s:submit>標(biāo)簽中加入theme="ajax" 并且在<head></head>中加入<s:head theme="ajax"/>
5 自動(dòng)填充!

大家都喜歡GOOGLE的搜索吧
現(xiàn)在也可以自己動(dòng)手實(shí)現(xiàn)它了!
比如有數(shù)據(jù)集[aaaaaa],[bbbbbb],[aaacc]
那么在鍵入aaa以后 這個(gè)組合框會(huì)自動(dòng)列出[aaaaa]和[aaacc]
同樣也是一個(gè)標(biāo)簽搞定!
這個(gè)標(biāo)簽就是<s:autocompleter>
6 可以切換的面板

這個(gè)在做WEB開(kāi)發(fā)的時(shí)候經(jīng)常用到
自己寫個(gè)很煩
不過(guò)STRUTS提供了簡(jiǎn)便的實(shí)現(xiàn)方法
用<s:tabbedPanel>這個(gè)標(biāo)簽就可以咯
一些要注意的地方:
1 項(xiàng)目的JDBC配置文件
位置在\struts\WebRoot\WEB-INF\classes\conf\jdbc
目前用的是DB2驅(qū)動(dòng),如果使用別的數(shù)據(jù)庫(kù) 那么需要配置一下jdbc.properties
其他的配置文件也統(tǒng)統(tǒng)放在\struts\WebRoot\WEB-INF\classes\conf\下面
2 STRUTS2支持模塊化開(kāi)發(fā) 所以example單獨(dú)做為一個(gè)模塊分出來(lái)
如果不需要它 那么把所有帶有example的文件統(tǒng)統(tǒng)刪除即可
3 用了SITEMESH作頁(yè)面布局 如果覺(jué)得不爽 用TILE其實(shí)也可以....
一些心得:
1 STRUTS 希望所有的跳轉(zhuǎn)用ACTION控制,其實(shí)一開(kāi)始就有人用JAVASCRIPT企圖繞過(guò)這種限制,
到后來(lái)的AJAX狂潮把這種思想沖地體無(wú)完膚
所以STRUTS2里干脆集成了AJAX ,可以看到大多數(shù)UI標(biāo)簽都可以使用AJAX
需要做的僅僅是在標(biāo)簽中加入theme="ajax" 并且在<head></head>中加入<s:head theme="ajax"/>
而不需要從頭學(xué)習(xí)AJAX,DWR,DOJO...
2 STRUTS的標(biāo)簽功能很弱,但是如果不去使用它
那么基本上和很多的框架特性說(shuō)88了
換句話說(shuō)
STRUTS沒(méi)有強(qiáng)制你使用它的東西
但是如果你不去使用它 那么損失非常大
而STRUTS2正好相反
同樣沒(méi)有強(qiáng)制你使用它的東西
如果你去使用它 那么將有很大的驚喜!
3 STRUTS2 的ACTION無(wú)須繼承任何類型或?qū)崿F(xiàn)任何接口
這算是一個(gè)很大的變化
理論上說(shuō) 這比以前更棒 容易測(cè)試 也不用再convert actionForm
但是中國(guó)的國(guó)情是:
總是希望每個(gè)頁(yè)面包含象新浪首頁(yè)那樣多的信息
同時(shí)希望能夠有鏈接鏈到所有的頁(yè)面
最后希望能有市面上有的所有功能
這樣顯示數(shù)據(jù)的變量 控制參數(shù)的變量....
想象下 一個(gè)ACTION類需要多少行代碼
4 從學(xué)習(xí)/開(kāi)發(fā)成本來(lái)說(shuō)
學(xué)習(xí)STRUTS2比STRUTS更容易
而且可以邊學(xué)邊干
而STRUTS,如果沒(méi)好好的學(xué)習(xí) 那么基本上什么都干不了,
原因就是上面的第2點(diǎn)
STRUTS2里的很多東西如果不會(huì) 那么可以暫時(shí)不用 也沒(méi)有大的影響
等以后學(xué)會(huì)了 日子會(huì)更好過(guò)!

/Files/seeckt/struts.rar
倉(cāng)促弄完
不管了,休假去咯!