<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-42  評論-578  文章-1  trackbacks-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的SSH整合開發(fā)終于完成了。我所介紹的Annotation注解其實并不多,還得靠大家找資料去學(xué)習(xí)。而我們側(cè)重點是在用Annotation時三大框架是如何整合起來的。
            說點題外話吧,我們在開發(fā)過程中,究竟用Annotation還是XML,許多人曾問這樣的問題。有培訓(xùn)機構(gòu)的老師說過一句話,Annotation可以用,但XML配置一定要懂,因為XML配置現(xiàn)在還是主流。他說得也挺有道理的。有些人可能還不能接受Annotation這東西,就像我當初不大喜歡它一樣。我的一位教我們Java中間件的老教師說:“Struts,Spring,Hibernate算什么技術(shù)?學(xué)EJB才是有用的。”他教我們的好像是EJB2版本的,他年輕時用Jbuilder開發(fā)過EJB的項目。如果我問他“為什么不選EJB3.0”,他會不會說:“EJB3被改得一塌糊涂,什么注解啊,改得狗屁不通,還是EJB2的最好……”。當然,我沒有再問他。有時候,新事物要被人們所接受,是要經(jīng)歷一段時間的,世界在變,知識在變,我們何不用更寬廣的心態(tài),去接受那些新生的事物?
            (*^-^*) 本文原創(chuàng),轉(zhuǎn)載請注明出處, http://www.tkk7.com/rongxh7謝謝! (*^-^*)


    本文原創(chuàng),轉(zhuǎn)載請注明出處,謝謝!http://www.tkk7.com/rongxh7(心夢帆影JavaEE技術(shù)博客)
        

    posted on 2009-03-27 00:09 心夢帆影 閱讀(9400) 評論(37)  編輯  收藏 所屬分類: Struts2.xHibernateSpring

    評論:
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-03-27 00:16 | 劉岳
    哥們!!我是第一個看到這個的吧!!哈哈
      回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-03-27 00:18 | 心夢帆影
    @劉岳
    呵呵,謝謝支持!  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-03-27 00:27 | 劉岳
    加個好友吧 呵呵 我的qq:117626034 以后請多指教 msn:liuyuecn@126.com  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-03-27 00:39 | 何奇山
    呵呵,頂!!!!!!  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-03-27 05:24 | 雙色球
    進來給你支持一下  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) [未登錄] 2009-03-27 12:25 | 陳亮
    好文,正在找怎么讓注解配置的action使用spring的依賴注入,謝謝了!
      回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) [未登錄] 2009-03-27 13:25 | 屹礫
    講得蠻好啊!事務(wù)也可以用Annotation的。  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-03-30 08:38 | zhoulejian
    能否發(fā)我一份原代碼給我,zhoulejian@126.com謝謝!   回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-03-30 09:56 | 杯中水
    下載不到 struts2-spring-plugin-2.0.11.2.jar,能不能發(fā)給我:qxpidt@163.com  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-03-30 23:21 | 心夢帆影
    @杯中水
    struts2-spring-plugin-2.0.11.2.jar在Struts2的解壓包中可以找到,你試試找找看.  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-04-01 17:35 | 中國福利彩票
    好,謝謝,呵呵,不錯  回復(fù)  更多評論
      
    # 最好是發(fā)布一下源碼包 2009-04-07 17:36 | 余軍
    哥們寫的是還好,有個源碼包就更好了,
    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ù)  更多評論
      
    # 最好是發(fā)布一下源碼包 2009-04-07 17:38 | 余軍
    能否發(fā)我一份原代碼給我,hzmotorola521@gmail.com謝謝!   回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-04-08 08:51 | catvoid
    可不可以分享源碼 拜讀下~~~ catvoid@gmail.com  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-04-24 08:29 | 大法官
    感謝分享  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-04-27 16:04 | ksh033
    能不能發(fā)份源碼給我
    我按你的步驟試了會出錯..
    謝謝
    94456671@qq.com  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-04-27 23:19 | 王大力
    此實例在struts2.1.6的環(huán)境下,需要修改某些參數(shù)才能運行起來,請樓主update此篇blog,為后來的同仁造福!為謝!  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-05-04 16:19 | zhangsan
    請博主把能運行的代碼發(fā)上來下。我們參考做出來有問題

    謝謝了  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-07-03 11:40 | ゞ沉默是金ゞ
    能運行,但是怎么沒有插入到數(shù)據(jù)庫中呢?是因為application-common.xml文件中沒有把那2個bean放開嗎?  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-07-03 13:42 | ゞ沉默是金ゞ
    我改了,在userDaoBean中的save方法中加了個事務(wù)提交,Transaction tx = this.getSession().beginTransaction();
    tx.commit();  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-07-14 15:33 | 雙色球
    很好,不錯  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-07-31 00:52 | 慕寒
    如果這個action里有多個方法怎么去注解,,,,又如 我要對username這個字段進行判斷是否被注冊了,怎么去注解,@Validations怎么使用好.@RequiredStringValidator(message = "請輸入用戶名!")這樣的驗證是分開寫在set方法上好還是 集中寫在@Validations 里面好, 會不會寫很而使代碼看起來很亂.....請教了!
      回復(fù)  更多評論
      
    # 運行成功,數(shù)據(jù)庫沒值? 2009-08-12 20:17 | 未登陸用戶
    我跟"ゞ沉默是金ゞ"的情況一樣,請教博主:怎么解決此問題?  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-08-18 11:32 | 心飛翔
    博主有沒有研究過在基于Annotation的SSH配置下如何把FreeMarker進行整合,或者說Stuts2.1.6實際上是可以直接使用FreeMarker的?謝謝  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-10-28 17:43 |
    注冊的例子有問題吧, @Resource(name="userService")
    沒起到作用,userService還是為空 空指針  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2009-10-28 19:01 |
    樓主 action注解service報錯 空指針 可以回復(fù)嗎  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2010-01-06 16:04 | lion
    我運行也是nullpointerexception  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2010-04-06 09:25 | yr
    老大,我想要源碼。yr512656630@163.com。謝謝。。。支持你  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) [未登錄] 2010-04-26 08:57 | java愛好者
    不錯,好東西啊!!!  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2010-06-05 15:56 | Mac Hotesion
    javax.annotation.Resource 用的是javaee.jar包里面的嗎?
    ①如果是的話,你的javaee.jar和ejb3-persistence.jar中的javax.persistence.Entity不會有沖突嗎?怎么處理
    ②如果不是,請問你用的是那個包的?  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2010-08-03 10:03 | tt
    我的SQL語句在控制臺輸出了。但是數(shù)據(jù)庫里面沒有插入啊 這是為什么?
    87513277@qq.com 博主怎么聯(lián)系你?  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2010-08-03 10:26 | tt
    增加 <property name="connection.autocommit">true </property> ,才能使事務(wù)執(zhí)行。  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) [未登錄] 2010-09-01 17:50 | x
    怎么驗證對象?
    public class TradeAction extends ActionSupport {
    private Trade trade = null;
    @RequiredStringValidator(message = "input ref No", fieldName = "trade.refNo")
    @StringLengthFieldValidator(minLength = "2", maxLength = "12", message = "refNo minLength is ${minLength}, maxLength is ${maxLength}")
    public void setTrade(Trade trade) {
    this.trade = trade;
    }//這樣不行呀,why?  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2010-12-31 14:40 | 于楠
    您好,我按著您說的方式整合時出現(xiàn)以下錯誤:
    There is no Action mapped for namespace /upload and action name uploadify. - [unknown location]
    <s:form action="uploadify" namespace="/upload" enctype="multipart/form-data" method="post" >
    <input type='file' name='upload' id="upload" >
    <input type="submit" value="上傳"/>
    </s:form>

    @Controller
    @Scope("prototype") //聲明此類為控制層的類,且為prototype模式調(diào)用
    @ParentPackage(value="struts-default")
    @Namespace("/upload")
    請問如何更正  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2011-03-31 16:52 | ln1058
    struts.xml還是有必要保留的,不能什么都用注解!尤其是在修改代碼,查找代碼的位置時,全用注解是不方便的  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2011-04-08 22:49 | fdsfas
    @何奇山
    dfasdf  回復(fù)  更多評論
      
    # re: 基于Annotation的Struts2.0+Hibernate3.3+Spring2.5整合開發(fā) (3) 2011-09-01 09:57 | 河蟹上街
    弄就弄完全了呀,或者發(fā)個源碼包上來,總是缺東西,很難配置成功的。  回復(fù)  更多評論
      
    主站蜘蛛池模板: 美女视频黄频a免费| 亚洲精品字幕在线观看| 亚洲一区二区三区91| 毛片免费在线观看| 亚洲精品国产字幕久久不卡| 一级特黄色毛片免费看| 国产免费久久精品| 国产亚洲福利在线视频| 女人18特级一级毛片免费视频| 亚洲熟伦熟女专区hd高清| 永久免费看mv网站入口| 亚洲爆乳少妇无码激情| 国产免费久久精品| 一级a性色生活片久久无少妇一级婬片免费放 | 亚洲精品国产成人片| 日韩在线永久免费播放| 亚洲AV无码乱码在线观看富二代| 国产亚洲视频在线观看网址| 亚洲Av无码乱码在线观看性色| 美女被暴羞羞免费视频| 亚洲无人区一区二区三区| 日本免费一区二区三区 | 亚洲日韩中文字幕无码一区| 日韩免费无砖专区2020狼| 一级毛片一级毛片免费毛片| 亚洲人成中文字幕在线观看| 久久久久国产精品免费网站| 亚洲w码欧洲s码免费| 免费看小12萝裸体视频国产| 中国好声音第二季免费播放| 久久亚洲国产成人亚| 日韩精品成人无码专区免费| 美女被艹免费视频| 亚洲成色999久久网站| 四虎免费在线观看| 91免费在线视频| 亚洲国产精品成人综合久久久| 日本免费电影一区| 久久免费精品视频| 亚洲色大成网站www永久网站| 免费在线一级毛片|