<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

    下載Struts2.1.6,網址http://struts.apache.org/download.cgi#struts216,點擊下圖中選中的部分即可下載。

    image

    下載Eclipse for JavaEE(3.4 or 3.5),網址http://www.eclipse.org/downloads/,點擊下圖選中的鏈接,進入下一個頁面,找到能夠下載的地方下載就行。

    image

    JDK6.0和Tomcat6.0,請大家自行下載。

    另外,建議下載JSP標準標準庫JSTL,下載地址:/Files/rongxh7/jstl-jar.rar

    好,暫時下載這些,以后,需要用到其他的時,再下載。至于JDK6.0,Tomcat6.0,Eclipse的安裝,請大家自行安裝,在這里就不演示安裝過程了,如有什么問題,再聯系我。

    關于Eclipse的部分用法,如在Eclipse里配置Tomcat服務器,新建動態Web項目等,請看我的(Eclipse圖解教程),或者上網找一下其他的資料學習一下。

    來開始我們的項目吧,先做個簡單的測試,New一個Dynamic Web Project,起名為“SimpleWeb”,將Struts2.1.6的下載包解壓后得到的lib目錄,在lib目錄下,找到以面的jar包:

    xwork-2.1.2.jar
    struts2-core-2.1.6.jar
    struts2-convention-plugin-2.1.6.jar
    ognl-2.6.11.jar
    freemarker-2.3.13.jar
    commons-loggin-1.0.4.jar
    commons-fileupload-1.2.1.jar

    把這些包放進項目的lib目錄下,同時,建議也把JSTL的核心jar包也放到lib目錄,這些JSTL的包主要有:

    jstl.jar
    standard.jar

    我們先要在項目WEB-INF下的web.xml文件中配置Struts2應用,配置后,web.xml全部代碼如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
      <display-name>SimpleWeb</display-name>
      <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>

    </web-app>

    我們在項目的WEB-INF目錄下新建一個文件夾命名為“content”,這個文件夾名一定要這樣,如果寫成別的,要另外配置一下,但初學的話,就按它默認的吧。我們新建的這個content目錄,就是專門用來放JSP文件的。

    我們在content目錄下建一個JSP文件,命名為“hello.jsp”,內容可以很簡單,就在里面寫一個簡單的話:Hello SImple,代碼略。

    這時,整個項目的文件夾視圖如下:

    image

    我運行Tomcat服務器,測試一下Struts2配置能不能用。首先我們在地址欄輸入:http://localhost:8060/SimpleWeb/hello.jsp ,很遺憾,不管用了,報錯了:HTTP Status 404 - The requested resource (/SimpleWeb/hello.jsp) is not available.截圖如下:

    image

    正確的做法是,輸入地址: http://localhost:8060/SimpleWeb/hello.action 或者http://localhost:8060/SimpleWeb/hello 如果出現如下結果,就說明Struts2配置成功了。

    image

     

    注意一點,這只是在WEB-INF/content目錄下的文件是通過這種方式訪問的;如果不是在這目錄下,而在項目目錄下,即Eclipse對應項目的WebContent下,就不能這樣訪問了。舉例說,在項目根目錄下建個hello.jsp的文件,則我們只能通過http://localhost:8060/SimpleWeb/hello.jsp來訪問。

    能通過hello.action或者hello訪問WEB-INF/content下的hello.jsp,這種做法,是Struts2.1.6跟Struts2.0不同之處之一。使用時請確保你使用的Struts版本是2.1.6+。相關的命名規范與默認的action匹配規則,請參考官方的文檔:http://struts.apache.org/2.1.6/docs/convention-plugin.html

    我們再新建一個Java類,命名為HelloAction,此類須繼承com.opensymphony.xwork2.ActionSupport,代碼如下:

    package cn.simple.action;

    import org.apache.struts2.convention.annotation.Result;
    import org.apache.struts2.convention.annotation.Results;
    import com.opensymphony.xwork2.ActionSupport;


    public class HelloAction extends ActionSupport {

        @Override
        public String execute() throws Exception {
            System.out.println("HelloAction execute ... ");
            return SUCCESS;
        }
    }

    讓我們再次訪問:http://localhost:8060/SimpleWeb/hello.action 或者http://localhost:8060/SimpleWeb/hello 

    可以看出,在Eclipse的控制臺確定打印出了以下信息,這說明,訪問請求確定經過了HelloAction類。

    image

    同時頁面是跳到了WEB-INF/content/hello.jsp文件(如下圖),這說明請求的確是從HelloAction類轉發到了hello.jsp。

    image

    看來,好像在不做什么配置,Struts2.1.6也會找到名為HelloAction的類來處理…/hello.action或者…/hello的請求,而好像也沒有做什么配置,HelloAction會自動將請求轉發給名為hello.jsp的頁面,這正是Struts2.1.6的妙用之處,全賴struts2-convention-plugin-2.1.6.jar這個插件,具體了解,可看我上面提供的官方鏈接,或者看這位帥哥的翻譯之作:struts2采用convention-plugin實現零配置

    看了上面的HelloAction的代碼若感到莫名其妙的話,我這里把那些默認的、約定俗成的代碼也寫出來,這樣,修改后的HelloAction類如下:

    package cn.simple.action;

    import org.apache.struts2.convention.annotation.Result;
    import org.apache.struts2.convention.annotation.Results;
    import com.opensymphony.xwork2.ActionSupport;

    @Results({
        @Result(name="success",location="hello.jsp",type="dispatcher")
    })

    public class HelloAction extends ActionSupport {

        @Override
        public String execute() throws Exception {
            System.out.println("HelloAction execute ... ");
            return SUCCESS;
        }
    }

    這樣就容易明白許多了。解釋如下:

    name = “success” 跟 Action里的execute()方法的返回值SUCCESS(也可寫成“success”)對應,即若此Action類一旦返回SUCCESS,就會跳到對應的這個Result去處理。
    location = “hello.jsp”,表示請求由這個Action跳轉到hello.jsp這個頁面。
    type = “dispathcer”,表示轉發方式,具體解釋見下面。


    其中type=”dispatcher”表示請求轉發,還有另一種常用的叫做type=”redirect”重定向,在下文會出現。Struts2的請求轉發和重定向的區別其實跟Java Servlet里的是差不多的。Servlet里與其功能等價的的代碼片斷如下:

    request.getRequestDispatcher("hello.jsp").forward(request, response);    //請求轉發
    response.sendRedirect("hello.jsp");    //重定向

    兩者的區別可以這樣理解:請求轉發(Dispatcher)在轉發到的另一頁面(如hello.jsp)還能保留Request域里的東西,而重定向(Redirect)的話,就跟它的名字“重定向”一樣,跳到了另一個頁面(如hello.jsp),不再跟原來頁面(或者一個action、或者一個Servlet,或者JSP頁面)有任何瓜葛,不會保存原來頁面Request域的東西。還有一個表面上的區別就是:請求轉發(Dispatcher)到另一個頁面(如hello.jsp)后,地址欄里顯示的仍然是上一個頁面(這里稱頁面不太合適)的路徑(如hello.action),而重定向則顯示的是新跳到的那個頁面的路徑。大家自己測試一下,觀察一下,其實也挺容易理解的。

    Struts 2.1.6 精簡實例系列教程第一期——環境的搭建與HelloSimple介紹就到此,敬請期待下文!



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

    posted on 2009-07-18 17:27 心夢帆影 閱讀(8064) 評論(10)  編輯  收藏 所屬分類: Struts2.1.6系列教程

    評論:
    # re: Struts2.1.6精簡實例系列教程(1):環境的搭建與HelloSimple[未登錄] 2009-07-18 22:58 | 小人物
    支持一下,這是我所需要的!  回復  更多評論
      
    # re: Struts2.1.6精簡實例系列教程(1):環境的搭建與HelloSimple 2009-07-20 21:48 | RangerWolf
    期待樓主精彩下文 :)  回復  更多評論
      
    # re: Struts 2.1.6 精簡實例系列教程(1):環境的搭建與HelloSimple 2009-07-26 22:53 | ynyee
    不頂實在不行了,好文好文!~全是好文,高手高手高高手~
      回復  更多評論
      
    # re: Struts 2.1.6 精簡實例系列教程(1):環境的搭建與HelloSimple 2009-07-28 14:48 | 身在半空
    受教了,學習中。  回復  更多評論
      
    # re: Struts 2.1.6 精簡實例系列教程(1):環境的搭建與HelloSimple 2009-07-31 00:13 | 慕寒
    注解驗證怎么用的  回復  更多評論
      
    # re: Struts 2.1.6 精簡實例系列教程(1):環境的搭建與HelloSimple[未登錄] 2009-08-02 10:58 |
    樓主確定struts2.1.6的web配置文件是
    <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>
    ,上面的應該是struts2.1.x以前的版本吧!
    應該是:

    <!-- Filters -->
    <!-- START SNIPPET: filter -->
    <filter>
    <filter-name>action2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <!-- END SNIPPET: filter -->

    <filter-mapping>
    <filter-name>action2</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>
      回復  更多評論
      
    # re: Struts 2.1.6 精簡實例系列教程(1):環境的搭建與HelloSimple[未登錄] 2009-09-02 13:54 | Jake
    太精彩了.感謝LZ  回復  更多評論
      
    # re: Struts 2.1.6 精簡實例系列教程(1):環境的搭建與HelloSimple 2009-12-01 18:20 | 征服者
    謝謝!兄弟受益匪淺,尤其是.jar文件介紹的明確。好!
      回復  更多評論
      
    # re: Struts 2.1.6 精簡實例系列教程(1):環境的搭建與HelloSimple 2011-06-20 09:29 | Mr.S.Liu
    特別想和你認識下....QQ 7132164

    期待和你交流  回復  更多評論
      
    # re: Struts 2.1.6 精簡實例系列教程(1):環境的搭建與HelloSimple 2012-03-10 12:08 | vsdvdsf
    @Jake
    為什么我還是沒有配置成功?不行啊  回復  更多評論
      
    主站蜘蛛池模板: 一个人免费观看www视频| 免费吃奶摸下激烈视频| 岛国精品一区免费视频在线观看| 亚洲日韩中文字幕| 亚洲成AV人片在线观看无码| 亚洲AV无码一区二区三区在线观看 | 夜夜爽妓女8888视频免费观看| 亚洲乱码一区av春药高潮| 亚洲av永久无码制服河南实里| 亚洲不卡无码av中文字幕| 女人被男人桶得好爽免费视频 | 亚洲AV日韩精品久久久久| 亚洲男人的天堂在线va拉文| 在线免费观看国产视频| 国产va免费精品观看精品 | 亚洲国产成人91精品| 亚洲成人精品久久| 亚洲欧洲日产国码av系列天堂| avtt亚洲天堂| 拔擦拔擦8x华人免费久久| 成年私人影院免费视频网站| 日本zzzzwww大片免费| 99热在线免费播放| 日本免费中文字幕| 香蕉免费一区二区三区| 久久er国产精品免费观看2| 大妹子影视剧在线观看全集免费 | 性盈盈影院免费视频观看在线一区| 亚洲三级在线免费观看| 精品国产sm捆绑最大网免费站| 久久成人a毛片免费观看网站| 免费观看91视频| 日本免费污片中国特一级| 亚洲精品免费观看| 2020因为爱你带字幕免费观看全集| 免费人成在线观看网站品爱网| 97免费人妻在线视频| 久久精品免费视频观看| 成人免费福利视频| 国产乱码免费卡1卡二卡3卡| 成人网站免费观看|