欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

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

系統(tǒng) 1927 0

????????進入我們基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā)的最后一個階段 了,這階段主要為我們的項目引進Struts2的Annotation。相對于帶Annotation的Hibernate與帶Annotation的 Spring整合來說,帶Annotation的Struts與帶Annotation的Spring整合還是比較容易實現(xià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(這個前面已引進),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ā)我們的控制層吧。寫個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等注解,大大方便了我們處理表單信息的校驗。大家有 沒有發(fā)覺少了什么?我們不需要Struts.xml的配置文件了,也不需要xxx-validation.xml,也不需要寫煩雜的驗證代碼了。豈不是很 方便嗎?
????????不過,不要忘記了,我們還得在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了一個參數(shù)actionPackages,表示我們的請求到哪里尋找我們的action。舉例說,我們的用戶注冊 action="register",它默認會在com.rong.action包下尋找RegisterAction類。經(jīng)過action的處理后,若 返回success,則會跳到success.jsp,若校驗不通過,則返回input,則請求轉(zhuǎn)發(fā)回register.jsp。
????????好了,看看運行效果吧!
???????? 基于 Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā)(3/3) ????????
????????成功啦!我們基于Annotation的SSH整合開發(fā)終于完成了。我所介紹的Annotation注解其實并不多,還得靠大家找資料去 學(xué)習(xí)。而我們側(cè)重點是在用Annotation時三大框架是如何整合起來的。
????????說點題外話吧,我們在開發(fā)過程中,究竟用Annotation還是XML,許多人曾問這樣的問題。有培訓(xùn)機構(gòu)的老師說過一句 話,Annotation可以用,但XML配置一定要懂,因為XML配置現(xiàn)在還是主流。他說得也挺有道理的。有些人可能還不能接受Annotation這 東西,就像我當(dāng)初不大喜歡它一樣。我的一位教我們Java中間件的老教師說:“Struts,Spring,Hibernate算什么技術(shù)?學(xué)EJB才是 有用的。”他教我們的好像是EJB2版本的,他年輕時用Jbuilder開發(fā)過EJB的項目。如果我問他“為什么不選EJB3.0”,他會不會 說:“EJB3被改得一塌糊涂,什么注解啊,改得狗屁不通,還是EJB2的最好……”。當(dāng)然,我沒有再問他。有時候,新事物要被人們所接受,是要經(jīng)歷一段 時間的,世界在變,知識在變,我們何不用更寬廣的心態(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號聯(lián)系: 360901061

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

【本文對您有幫助就好】

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

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 五月激情久久 | 欧美videosex性欧美成人 | 中国黄色一级生活片 | 国产成人91精品 | 亚洲精品人人 | 午夜家庭影院 | 欧美变态口味重另类日韩毛片 | 日本污视频在线观看 | 亚洲欧洲成人 | 婷婷五月色综合香五月 | 一本一本久久α久久精品66 | 久久一级视频 | 亚洲精品一区二区网址 | 国产精品成人一区二区三区 | 日本高清中文字幕一区二区三区 | 玖玖在线免费视频 | 色播开心网 | 国产免费观看视频 | 亚洲国产精品久久久久久网站 | 99热在线观看免费 | 亚洲黄色a | 综合网天天射 | 国产精品乱码一区二三区小蝌蚪 | 免费看a | 精品一区视频 | 亚洲精品一区二区三区在线 | 亚洲国产日本 | 蜜桃五月天 | 国产特级毛片AAAAAAA高清 | 久久久久国产成人精品亚洲午夜 | 国产精品久久久久久久y | 一区二区成人国产精品 | 亚洲第一黄色网址 | 99国产精品视频免费观看 | 夜夜未满 18勿进的爽影院 | 国产成人精品在线观看 | 中文字幕无线码一区二区三区 | 成人免费在线视频 | 日本一级毛片不卡免费 | 免费在线亚洲视频 | 日韩三级在线播放 |