亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

基于 Annotation的Struts2.0+Hibernate3.3+Spri

系統(tǒng) 2117 0

????????進(jìn)入我們基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā)的最后一個(gè)階段 了,這階段主要為我們的項(xiàng)目引進(jìn)Struts2的Annotation。相對于帶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ā)我們的用戶注冊小例子。
????????register.jsp注冊頁的部分代碼如下:

???? < s:form? action ="register" >
????????
< s:textfield? name ="username" />
????????
< s:password? name ="password" />
????????
< s:submit? value ="注冊" />
????
</ s:form >
????
< s:fielderror ></ s:fielderror >


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

注冊成功!你好, < s:property? value ="username" /> !


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

package ?com.rong.action;

import ?javax.annotation.Resource;
import ?org.apache.struts2.config.ParentPackage;
import ?org.apache.struts2.config.Result;
import ?org.apache.struts2.config.Results;
import ?org.springframework.context.annotation.Scope;
import ?org.springframework.stereotype.Controller;
import ?com.opensymphony.xwork2.ActionSupport;
import ?com.opensymphony.xwork2.validator.annotations.RequiredStringValidator;
import ?com.rong.entity.User;
import ?com.rong.service.UserService;

@Controller????@Scope(
" prototype " )???????? // 聲明此類為控制層的類,且為prototype模式調(diào)用
@ParentPackage(value = " struts-default " )
@Results(
{
????@Result(name
= " success " ,value = " success.jsp " ),
????@Result(name
= " input " ,value = " register.jsp " )
}
)
public ? class ?RegisterAction? extends ?ActionSupport? {
????
????@Resource(name
= " userService " )
????
private ?UserService?userService;
????
????
private ?String?username;
????
private ?String?password;

????@Override
????
public ?String?execute()? throws ?Exception? {
????????User?user?
= ? new ?User();
????????user.setUsername(
" rongxinhua " );
????????user.setPassword(
" blogjava " );
????????userService.save(user);
????????
return ?SUCCESS;
????}


????
public ?String?getUsername()? {
????????
return ?username;
????}


????@RequiredStringValidator(message?
= ? " 請 輸入用戶名! " )
????
public ? void ?setUsername(String?username)? {
????????
this .username? = ?username;
????}


????
public ?String?getPassword()? {
????????
return ?password;
????}


????@RequiredStringValidator(message?
= ? " 請 輸入密碼! " )
????
public ? void ?setPassword(String?password)? {
????????
this .password? = ?password;
????}


}


????????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:

???? <!-- ?配置Struts?2.0? -->
????
< filter >
????????
< filter-name > struts2 </ filter-name >
????????
< filter-class > org.apache.struts2.dispatcher.FilterDispatcher </ filter-class >
????????
< init-param >
????????????
< param-name > actionPackages </ param-name >
????????????
< param-value > com.rong.action </ param-value >
????????
</ init-param >
????
</ filter >
????
< filter-mapping >
????????
< filter-name > struts2 </ filter-name >
????????
< url-pattern > /* </ url-pattern >
????
</ filter-mapping >

????????我們init了一個(gè)參數(shù)actionPackages,表示我們的請求到哪里尋找我們的action。舉例說,我們的用戶注冊 action="register",它默認(rèn)會(huì)在com.rong.action包下尋找RegisterAction類。經(jīng)過action的處理后,若 返回success,則會(huì)跳到success.jsp,若校驗(yàn)不通過,則返回input,則請求轉(zhuǎn)發(fā)回register.jsp。
????????好了,看看運(yùn)行效果吧!
???????? 基于 Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā)(3/3) ????????
????????成功啦!我們基于Annotation的SSH整合開發(fā)終于完成了。我所介紹的Annotation注解其實(shí)并不多,還得靠大家找資料去 學(xué)習(xí)。而我們側(cè)重點(diǎn)是在用Annotation時(shí)三大框架是如何整合起來的。
????????說點(diǎn)題外話吧,我們在開發(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才是 有用的。”他教我們的好像是EJB2版本的,他年輕時(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)載請注明出處, ? http://www.blogjava.net/rongxh7 謝 謝! (*^-^*)

基于 Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā)(3/3)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 久久这里是精品 | 国产成人教育视频在线观看 | 97在线观看免费版 | 久久久四虎成人永久免费网站 | 久久浮力影院 | 一本岛高清v不卡免费一三区 | 中文一区在线观看 | 亚洲精品综合一区二区 | 爱情片在线观看 | 五月婷婷激情网 | 国产精品探花一区在线观看 | 欧美激情一区二区三级高清视频 | 久久青青草原精品国产麻豆 | 2021在线永久免费视频 | 久草免费精品视频 | 视频福利网 | 欧美高清不卡午夜精品免费视频 | 高清波多野结衣一区二区三区 | 国产精品伦一区二区三级视频 | 香蕉久久夜色精品国产 | 91精品国产福利在线观看性色 | 国产成+人欧美+综合在线观看 | 看全色黄大色大片免费视频 | 欧洲免费无线码二区5 | 久久亚洲欧美成人精品 | 九九视频国产 | 香蕉国产在线观看免费 | 99久久中文字幕伊人 | 伊人久久综在合线亚洲91 | 日韩欧美网 | 综合 欧美 国产 视频二区 | 毛片录像 | 狠狠久久亚洲欧美专区 | 黄色免费看视频 | 免费国产黄线在线观看视频 | 免费网站成人亚洲 | 亚洲专区第一页 | 亚洲欧美日韩一级特黄在线 | 欧美高清视频www夜色资源网 | 日韩欧美高清在线 | 亚洲成在人线中文字幕 |