Loading...

          java .net

          開(kāi)始學(xué)習(xí)struts2

          今天第一次感覺(jué)到經(jīng)濟(jì)危機(jī)在我身邊了,部門現(xiàn)在沒(méi)有在做的項(xiàng)目了
          經(jīng)濟(jì)危機(jī)中,趕緊為自己充充電,好到時(shí)候柳暗花明又一村,哈哈
          學(xué)struts2
          據(jù)說(shuō)struts2基于webwork,基本上跟struts1沒(méi)啥關(guān)系,如果有webwork的經(jīng)驗(yàn)上手會(huì)很迅速
          我沒(méi)接觸過(guò)webwork,就知道有這么個(gè)東西
          今兒開(kāi)始第一個(gè)struts
          見(jiàn)過(guò)好多blog寫(xiě)有struts2的入門步驟,俺也寫(xiě)一個(gè),為自己造個(gè)輪子,加深印象。
          首先下載struts2的jar包,到http://struts.apache.org/,右上角有個(gè)struts2的鏈接,今天下到的是
          struts2的2.0.14,昨天在javaeye上看到發(fā)布Struts2.1.3 發(fā)布了,只是主頁(yè)還沒(méi)看到,不止一次聽(tīng)大拿們說(shuō)過(guò)不要追求新版本,哈哈
          下載后的目錄:app--struts的例子
                        docs-doc文檔
                        lib-struts的jar包或依賴包
                        src-源碼
          HelloWorld:

          1、index.jsp
            耳目一新的是,不需要用到struts html標(biāo)簽,這只是猜測(cè),或許例子過(guò)于簡(jiǎn)單?今天工作中還感覺(jué)struts1的html標(biāo)簽真是不好用,想加個(gè)class、maxlength、size都不好使,讓我很是郁悶。希望在繼續(xù)學(xué)習(xí)中真的能耳目一新。
          struts的action慣例后綴名改成了.action,不再像struts1的.do了,說(shuō)是延續(xù)到webwork的慣例。
          下面的頁(yè)面代碼submit的時(shí)候?qū)⑻峤坏絣ogin.action
          index.jsp
          <body>
            <form action="login.action" method="post">
                username:<input type="text" name="username"/>
                password:<input type="password" name="password"/>
                <input type="submit" value="submit"/>
            </form>
          </body>
          2、Action類
          struts2的Action可是大進(jìn)步,不用再繼承任何類,實(shí)現(xiàn)了松耦合,它好像將struts1的ActionForm融合了進(jìn)來(lái),據(jù)說(shuō)struts2不再用ActionForm,頁(yè)面上對(duì)應(yīng)的字段寫(xiě)在了Action中,struts2框架會(huì)自動(dòng)調(diào)用get/set方法,在我印象里struts1中的Action對(duì)象不是線程安全的,會(huì)在不同線程間重用,所以謹(jǐn)慎在里面定義字段,在這看來(lái)struts2的Action不是這樣的,只是猜測(cè)
          package com.mystart.action;

          public class LoginAction {

              private String username;
              private String password;
            
              public String getUsername() {
                  return username;
              }
              public void setUsername(String username) {
                  this.username = username;
              }
              public String getPassword() {
                  return password;
              }
              public void setPassword(String password) {
                  this.password = password;
              }
            
              public String execute() throws Exception{
                  return "success";
              }
          }

          3、jsp、java類都定義了,現(xiàn)在要它們聯(lián)系起來(lái)-struts配置文件
          新的struts配置文件有個(gè)package包的概念,還沒(méi)鬧明白這個(gè)package的詳細(xì)用法,有待繼續(xù)深入
          <action>標(biāo)簽有變化,type變成了class,path變成了name,struts1中name屬性是制定ActionForm的,現(xiàn)在ActionForm沒(méi)有了
          forward變成了result,result的默認(rèn)name=success

          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE struts PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
              "http://struts.apache.org/dtds/struts-2.0.dtd">


          <struts>
              <package name="struts" extends="struts-default">
                  <action name="login" class="com.mystart.action.LoginAction">
                      <result name="success">/result.jsp</result>
                  </action>
              </package>

          </struts>

          4、最后啟動(dòng)struts2,配置web.xml
          struts1的web.xml配置是放在<servlet>中,也就是是一個(gè)servlet
          struts2變成了一個(gè)過(guò)濾器Filter
          struts1中<url-pattern>被配置成攔截.do的鏈接
          struts2變成了攔截所有鏈接 /*

          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4"
              xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
              http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
            
            <filter>
                <filter-name>struts2</filter-name>
                <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
            </filter>
            <filter-mapping>
                <filter-name>struts2</filter-name>
                <url-pattern>/*</url-pattern>
            </filter-mapping>
            <welcome-file-list>
              <welcome-file>index.jsp</welcome-file>
            </welcome-file-list>
          </web-app>

          以上是驢了個(gè)struts的視頻教程,今兒看了第一節(jié)課,看完后做了一下總結(jié),里面有一些自己的理解,有不對(duì)的地方請(qǐng)兄弟們指正,別光光說(shuō)我是豬,豬也要進(jìn)步啊,嘿嘿,每一步都有疑問(wèn),明天帶著問(wèn)題接著看下一節(jié),睡覺(jué)去。

          posted on 2008-12-29 23:06 閱讀(2238) 評(píng)論(6)  編輯  收藏 所屬分類: 學(xué)習(xí)java

          評(píng)論

          # re: 開(kāi)始學(xué)習(xí)struts2 2008-12-29 23:59 虎嘯龍吟

          寫(xiě)的不錯(cuò),加油!  回復(fù)  更多評(píng)論   

          # re: 開(kāi)始學(xué)習(xí)struts2[未登錄](méi) 2008-12-30 09:11 DD

          GOOD  回復(fù)  更多評(píng)論   

          # re: 開(kāi)始學(xué)習(xí)struts2[未登錄](méi) 2008-12-30 10:25 john

          你寫(xiě)的是不錯(cuò),但是希望不要把這樣的文章發(fā)表在首頁(yè)!!!  回復(fù)  更多評(píng)論   

          # re: 開(kāi)始學(xué)習(xí)struts2 2008-12-30 14:34 mxly

          大哥有視頻教程嗎?給小弟發(fā)一份!在此感激不盡
          cumtmxly@163.com  回復(fù)  更多評(píng)論   

          # re: 開(kāi)始學(xué)習(xí)struts2[未登錄](méi) 2008-12-31 12:15 zxbyh

          在電驢上搜 風(fēng)中葉,struts2
          這個(gè)視頻講的很不錯(cuò)餓!!  回復(fù)  更多評(píng)論   

          # re: 開(kāi)始學(xué)習(xí)struts2 2009-02-02 11:11 happy

          我現(xiàn)在也開(kāi)始學(xué)習(xí)struts2,一起進(jìn)步吧  回復(fù)  更多評(píng)論   

          公告

          希望有一天

          我能用鼠標(biāo)雙擊我的錢包

          然后選中一張100元

          按住“ctrl+c”

          接著不停的“ctrl+v”

          嘻嘻~~~笑醒~~~



          導(dǎo)航

          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類(102)

          隨筆檔案(398)

          文章分類

          文章檔案(10)

          有趣網(wǎng)絡(luò)

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 三河市| 张家川| 堆龙德庆县| 华坪县| 宁安市| 平果县| 百色市| 武陟县| 瑞金市| 清徐县| 荔波县| 山东省| 西乌珠穆沁旗| 城口县| 霞浦县| 民和| 囊谦县| 冷水江市| 民县| 措美县| 惠安县| 岑溪市| 聂荣县| 牡丹江市| 西平县| 兴义市| 瑞丽市| 若羌县| 河津市| 泰宁县| 宜兴市| 塔河县| 承德市| 阿鲁科尔沁旗| 保康县| 寻乌县| 鄂尔多斯市| 沙河市| 永善县| 浦城县| 藁城市|