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

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

系統(tǒng) 1843 0

????????進(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è)頁的部分代碼如下:

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


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

注冊(cè)成功!你好, < 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?
= ? " 請(qǐng) 輸入用戶名! " )
????
public ? void ?setUsername(String?username)? {
????????
this .username? = ?username;
????}


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


????@RequiredStringValidator(message?
= ? " 請(qǐng) 輸入密碼! " )
????
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,表示我們的請(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的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā)(3/3) ????????
????????成功啦!我們基于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 謝 謝! (*^-^*)

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


更多文章、技術(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ì)您有幫助就好】

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 色色网视频 | 亚洲欧美日韩精品高清 | 欧美日韩视频一区三区二区 | 精品一区二区在线观看 | 免费视频日韩 | 99精品视频在线这里只有 | 欧美在线观看一区二区 | 青草青草久热精品视频在线观看 | 欧美一级高清毛片aaa | 亚洲香蕉久久一区二区 | 亚洲欧美日韩中文字幕在线 | 国产一区二区三区高清视频 | 天天弄天天操 | 午夜免费福利影院 | 99这里只有精品66视频 | 中文亚洲日韩欧美 | 欧美日韩免费播放一区二区 | 麻豆精品久久久一区二区 | 久久久久99精品成人片三人毛片 | 欧美成人怡红院在线观看 | 顶级欧美色妇xxxxbbbb | 99在线国产 | 在线色片| 久久久久久在线 | a级做爰片毛片视频 | 四虎国产精品永久在线看 | 亚洲春色综合另类网蜜桃 | 四虎影视久久 | 国产精品视频久久久久 | 亚洲欧美在线精品一区二区 | 女人与女zzzoooxxxx | 综合亚洲欧美日韩一区二区 | 69香蕉视频 | 夜夜爽日日澡人人添 | 99热热热 | 国产精品11页 | 理论片 我不卡影院 | 中文国产欧美在线观看 | 久久99精品久久久久久野外 | 人人夜 | 国产成人久久精品二区三区牛 |