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

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

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

    我是FE,也是Fe

    前端來源于不斷的點滴積累。我一直在努力。

    統計

    留言簿(15)

    閱讀排行榜

    評論排行榜

    struts2中的mode-driven體驗

    在很久之前我就體驗(所謂體驗,就是寫一個demo跑跑,算不上學習)過一把struts2。但是我發現雖然struts2相對struts1.x有很大的不同,但是還是沒有解決困擾我的這個問題。就是model就究竟怎么寫。在一個spring-hibernate-struts的典型項目中,通常會在Hibernate中定義一個pojo實體類做ORM,但是在struts的Action同樣要定義model,不會再把那個實體類再寫一遍,我覺得很難受,我知道可以在Action里面聲明一個實體類,但是這樣總覺得不是很優雅,因為在我看來,實體類沒有得到很好的復用,我曾經對struts2很冷漠。但是最近了解到struts2里面有一個Model-Driven,雖然對模型驅動開發了之甚少,但是通過自己做的簡單的代碼,我發現這個世界真的是缺少發現。

    這也是第一次用上了maven2,最開始用到maven2是因為他可以管理依賴(dependency),我們只要在maven2的pom.xml 文件中添加一個依賴,maven 就會自動到網上下載struts所依賴的包并設置好classpath。

    tip:要使用maven2的eclipse插件m2eclipse必須將eclipse3.4升級到最新的版本,不然會被報錯的,update站點為:http://m2eclipse.sonatype.org/update/

    新建完項目之后,在項目的右鍵菜單中 maven2 -> add maven2 management。整個項目的目錄結構都會有變化,注意兩點,添加了maven2支持后,在build path中的source沒有了,需要手動添加文件夾。還有一個問題就是你必須在"Order and export"中將maven dependencies勾上,否則部署tomcat上面的時候會有包缺失。

    進入正題:其實model-driven在strtus中的用法沒有什么特別的地方。就是在定義Action的時候稍有不同。

     1 public class UserAction  extends ActionSupport  implements ModelDriven{
     2 
     3     private static final long serialVersionUID = 6863420763993646296L;
     4     private User user=new User();
     5 
        
     6     public
     Object getModel() {
     7         return
     user;
     8 
        }
     9 
    10     public String execute() {
    11         if(this.user.getAge()==20this.user.setAge(22);
    12         return SUCCESS;
    13     }
    14 }

    其實變化就是在定義Action的時候實現ModelDriven接口實現getModel方法。注意在聲明實體對象的時候需要實例化。但是在jsp頁面上也是有不同的。

    1 <s:form action="UserAction" theme="css_xhtml">
    2     <s:textfield name="name" label="姓名"></s:textfield>
    3     <s:textfield name="age" label="年齡"></s:textfield>
    4     <s:submit value="GO"></s:submit>
    5 </s:form>


    如果按照通常的做法在Action中定義一個User對象,那么在jsp頁面上文本框的屬性就應該是user.name,user.age.這樣做顯然更加簡單。

    結論

    使用model-driven的方式能夠將現有的實體類簡單的復用為mvc模型中的model,減少代碼。

    疑問:雖然解決了這么個問題,但是我還是對struts有些不放心,就是tag生成的html,很難獲得dom的id屬性,這樣給javascript的一些邏輯控制帶來了麻煩,這也是我對struts不太放心的地方,不知道大家在這方面是怎么做的。


    posted on 2009-05-01 23:29 衡鋒 閱讀(1865) 評論(2)  編輯  收藏 所屬分類: struts

    評論

    # re: struts2中的mode-driven體驗 2009-05-01 23:44 陽衡鋒

    源代碼下載地址:http://m.tkk7.com/Files/Hafeyang/struts-model-driven.zip  回復  更多評論   

    # re: struts2中的mode-driven體驗 2009-05-07 13:29 BeanSoft

    就是tag生成的html,很難獲得dom的id屬性,這樣給javascript的一些邏輯控制帶來了麻煩

    很簡單:

    document.form1.['user.name'] 就行了.  回復  更多評論   


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲熟妇少妇任你躁在线观看无码| 84pao国产成视频免费播放| 免费电视剧在线观看| 亚洲熟妇色自偷自拍另类| 久久久久久免费一区二区三区| 国产午夜亚洲精品理论片不卡 | 久久久久久毛片免费看| 亚洲国产精品视频| 免费很黄无遮挡的视频毛片| 国产成人精品免费视频软件| 日韩亚洲人成网站| 亚洲国产91精品无码专区| 日韩a毛片免费观看| 国产国拍亚洲精品福利| 香蕉免费看一区二区三区| 国产亚洲精品观看91在线| 亚洲午夜免费视频| 亚洲人成人77777在线播放| 韩国日本好看电影免费看| 精品在线免费视频| 国产成人99久久亚洲综合精品| 人妻在线日韩免费视频| 亚洲经典在线中文字幕| 成人免费看黄20分钟| 免费无码国产V片在线观看| 国产aⅴ无码专区亚洲av麻豆| 久久国产乱子伦精品免费不卡| 亚洲国产成人精品无码区在线网站 | 亚洲区小说区激情区图片区| 久草视频在线免费看| 亚洲天堂男人影院| 又粗又硬又黄又爽的免费视频 | 香蕉97碰碰视频免费| 亚洲乱码一区二区三区在线观看| 成人影片一区免费观看| 亚洲国产亚洲综合在线尤物| 国产色婷婷精品免费视频| 伊人免费在线观看| 亚洲黄页网在线观看| 中文字幕不卡亚洲 | 免费jlzzjlzz在线播放视频|