????????進(jìn)入我們基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā)的最后一個(gè)階段 了,這階段主要為我們的項(xiàng)目引進(jìn)Struts2的Annotation。相對(duì)于帶Annotation的Hibernate與帶Annotation的 Spring整合來說,帶Annotation的Struts與帶Annotation的Spring整合還是比較容易實(shí)現(xiàn)的。
????????我們先來引進(jìn)Struts2.0的相關(guān)jar包:
xwork- 2.0.5.jar,struts2-core-2.0.11.2.jar,ognl-2.6.11.jar,commons- logging.jar(這個(gè)前面已引進(jìn)),freemarker-2.3.8.jar,
還有Struts2.0與Spring整 合所需的
struts2-spring-plugin-2.0.11.2.jar
。 好,馬上來開發(fā)我們的用戶注冊(cè)小例子。
????????register.jsp注冊(cè)頁的部分代碼如下:






????????success.jsp注冊(cè)成功頁部分代碼如下:??

????????好,來開發(fā)我們的控制層吧。寫個(gè)RegisterAction.java的類:
























































????????Spring2.5通過@Controller?@Scope("prototype")?這樣的注解,將Struts的Action納 為自己的控制范圍之內(nèi)。Struts2.0自帶的@ParentPackage和@Results等注解,注明了要繼承的父包和響應(yīng)結(jié)果。還有 @RequiredStringValidator,@RequiredFieldValidator等注解,大大方便了我們處理表單信息的校驗(yàn)。大家有 沒有發(fā)覺少了什么?我們不需要Struts.xml的配置文件了,也不需要xxx-validation.xml,也不需要寫煩雜的驗(yàn)證代碼了。豈不是很 方便嗎?
????????不過,不要忘記了,我們還得在web.xml中配置Struts2:













????????我們init了一個(gè)參數(shù)actionPackages,表示我們的請(qǐng)求到哪里尋找我們的action。舉例說,我們的用戶注冊(cè) action="register",它默認(rèn)會(huì)在com.rong.action包下尋找RegisterAction類。經(jīng)過action的處理后,若 返回success,則會(huì)跳到success.jsp,若校驗(yàn)不通過,則返回input,則請(qǐng)求轉(zhuǎn)發(fā)回register.jsp。
????????好了,看看運(yùn)行效果吧!
????????
????????
????????成功啦!我們基于Annotation的SSH整合開發(fā)終于完成了。我所介紹的Annotation注解其實(shí)并不多,還得靠大家找資料去 學(xué)習(xí)。而我們側(cè)重點(diǎn)是在用Annotation時(shí)三大框架是如何整合起來的。
????????說點(diǎn)題外話吧,我們?cè)陂_發(fā)過程中,究竟用Annotation還是XML,許多人曾問這樣的問題。有培訓(xùn)機(jī)構(gòu)的老師說過一句 話,Annotation可以用,但XML配置一定要懂,因?yàn)閄ML配置現(xiàn)在還是主流。他說得也挺有道理的。有些人可能還不能接受Annotation這 東西,就像我當(dāng)初不大喜歡它一樣。我的一位教我們Java中間件的老教師說:“Struts,Spring,Hibernate算什么技術(shù)?學(xué)EJB才是 有用的?!彼涛覀兊暮孟袷荅JB2版本的,他年輕時(shí)用Jbuilder開發(fā)過EJB的項(xiàng)目。如果我問他“為什么不選EJB3.0”,他會(huì)不會(huì) 說:“EJB3被改得一塌糊涂,什么注解啊,改得狗屁不通,還是EJB2的最好……”。當(dāng)然,我沒有再問他。有時(shí)候,新事物要被人們所接受,是要經(jīng)歷一段 時(shí)間的,世界在變,知識(shí)在變,我們何不用更寬廣的心態(tài),去接受那些新生的事物?
????????(*^-^*) 本文原創(chuàng),轉(zhuǎn)載請(qǐng)注明出處,
?
http://www.blogjava.net/rongxh7
謝 謝! (*^-^*)
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
