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

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

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

    Java學習空間
    Java新人
    posts - 9,  comments - 17,  trackbacks - 0
    看了blogjava上max老師關于Struts2.0的文章,于是開始學習Struts2.0了。但是始終會出現問題。
    我嚴格按照max老師的《為Struts 2.0做好準備》中的方法,一步一步地建立了我的第一個Struts2.0的Project——Struts2_HelloWorld。

    1. 到Apache下載Struts 2.0包

    2. 打開Eclipse 3.2新建Web工程

      點擊菜單File\New\Project,出現如圖1所示對話框
      圖1 新建工程對話框
      圖1 新建工程對話框
      選擇Web\Dynamic Web Project,點擊“Next”,出現圖2對話框

      圖2 新建動態Web工程對話框
      圖2 新建動態Web工程對話框
      在“Project Name”中鍵入Struts2_HelloWorld,點擊“New”,出現以下對話框

      圖3 新建服務器運行時對話框
      圖3 新建服務器運行時對話框
      選擇“Apache\Apache Tomat v5.5”,點擊“Next”,出現以下對話框

      圖4新建服務器運行時對話框
      圖4新建服務器運行時對話框
      點擊“Finish”,關閉對話框。

    3. 將Struts 2.0 lib下的jar文件加到工程的構建路徑(build path)

      圖5 Struts 2.0的lib目錄
      圖5 Struts 2.0的lib目錄
      按ctr+a全選,復制,再轉到Eclipse窗口,在“Project Explorer”子窗口中選中Struts2_HelloWorld\WebContent\WEB-INF\lib,然后粘貼。經過Eclipse自動刷新“Project Explorer”子窗口,剛才所粘貼的jar文件應該會出現在Struts2_HelloWorld\Java Resources: src\Libraries\Web App Libraries下,如圖6所示:

      圖6 Project Explorer子窗口
      圖6 Project Explorer子窗口

    4. 打開web.xml文件,將其修改為以下代碼:
      <?xml version="1.0" encoding="ISO-8859-1"?>
      <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
      <web-app>
          
      <display-name>Struts 2.0 Hello World</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>
          
      <welcome-file-list>
              
      <welcome-file>index.html</welcome-file>
          
      </welcome-file-list>
      </web-app>

       

    5. 新建struts.xml文件

      右鍵點擊,Struts2_HelloWorld\Java Resources: src,出現如圖7所示菜單
      圖7 新建Other菜單
      圖7 新建Other菜單
      點擊“Other”,出現新建對話框,如圖8所示

      圖8 新建對話框
      圖8 新建對話框
      點擊“Next”,出現新建文件對話框,如圖9所示

      圖9 新建文件對話框
      圖9 新建文件對話框
      在“File name”中鍵入struts.xml,點擊“Finish”,然后將struts.xml的內容修改為:

      <!DOCTYPE struts PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
              "http://struts.apache.org/dtds/struts-2.0.dtd"
      >
      <struts>
          
      <include file="struts-default.xml"/>
      </struts>

       

    6. 新建index.html文件

      右鍵點擊Struts2_HelloWorld\WebContent,出現如圖10所示的菜單
      圖10 新建Other菜單
      圖10 新建Other菜單
      點擊“Other”,出現新建對話框,如圖11所示

      圖11 新建對話框
      圖11 新建對話框
      選擇Web\HTML,點擊“Next”出現如圖12所示的對話框

      圖12 新建HTML頁面對話框
      圖12 新建HTML頁面對話框
      在“File Name”中鍵入index.html,點擊“Next”,出現如圖13所示的對話框

      圖13 模板選擇對話框
      圖13 模板選擇對話框
      點擊“Finish”,將index.html的內容修改為以下內容:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
      <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Hello World</title>
      </head>
      <body>
      <h3>Hello World!</h3>
      </body>
      </html>

       

    7. 將應用程序打包到tomcat上

      右鍵點擊Struts_HelloWorld,出現如圖14所示的菜單
      圖14 工程菜單
      圖14 工程菜單
      點擊“Export\WAR file”,出現如圖15所示的對話框

      圖15 輸出對話框
      圖15 輸出對話框
      選擇“Web\WAR file”,點擊“Next”,出現如圖16所示的對話框

      圖16 輸出路徑對話框
      圖16 輸出路徑對話框
      輸入war文件的路徑(如%tomcat%\webapps\Struts2_HelloWorld.war),點擊“Finish”關閉對話框。

    8. 啟動tomcat,運行應用程序

      打開你的Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/,窗口輸出如圖17所示
      圖17 Hello World窗口
      圖17 Hello World窗口

    到目前為止,我還沒用到Struts2.0的東西。但是就是這樣簡單的Hello World始終都無法順利顯示出來,都會出現HTTP Status 404錯誤。于是我用了幾種方法去檢查錯誤:
    (1)按照上面max老師的方法將Project打包到Tomcat的webapps目錄下。打開Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/,tomcat提示HTTP Status 404。
    (2)在tomcat中建立虛擬目錄<Context path="/Struts2_HelloWorld" docBase="F:\Struts2_HelloWorld\WebContent" debug="0" crossContext="true" reloadable="true"/>,然后打開Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/,tomcat提示HTTP Status 404。
    (3)在第(2)中將WEB-INF\web.xml刪除,然后打開Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/。這樣我可以看到我的Hello Worle了,所以我懷疑是web.xml出了問題,但是我始終找不出來出了什么問題。我的web.xml和max老師的一模一樣。

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_9" 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">

        
    <display-name>Struts2_HelloWorld</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>

        
    <welcome-file-list>
            
    <welcome-file>index.html</welcome-file>
        
    </welcome-file-list>

    </web-app>

     (4)最后將Project整個文件夾拷貝到tomcat的webapps目錄下,并且沒有將WEB-INF/web.xml刪掉。打開Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/WebContent,成功,只有這樣才可以得到和max老師一樣的結果。但是在做以下的步驟時又出現問題。
    1. 新建類包(package)

      右鍵點擊Struts2_HelloWorld\Java Resources: src,出現如圖18所示菜單
      圖18 新建菜單
      圖18 新建菜單"
      點擊“New\Package”,出現如圖19所示對話框

      圖19新建Java類包對話框
      圖19新建Java類包對話框
      在“Name”鍵入tutorial,點擊“Finish”關閉對話框。

    2. 新建HelloWorld.java文件

      右鍵點擊Struts2_HelloWorld\Java Resources: src\tutorial,出現如圖20所示菜單
      圖20 新建菜單
      圖20 新建菜單
      點擊“New\Class”,出現如圖21所示對話框

      圖21 新建Java類對話框
      圖21 新建Java類對話框
      在“Name”中鍵入HelloWorld,在“Superclass”中鍵入com.opensymphony.xwork2.ActionSupport,點擊“Finish”關閉對話框。將HelloWorld.java的內容修改為:

      package tutorial;

      import com.opensymphony.xwork2.ActionSupport;

      public class HelloWorld extends ActionSupport {
          
      private String name;
          
          
      public String getName() {
              
      return name;
          }

          
          
      public void setName(String name) {
              
      this.name = name;
          }

          
          
      public String execute() {
              name 
      = "Hello, " + name + "!"
              
      return SUCCESS;
          }

      }

       

    3. 在struts.xml中添加action映射(mapping)
      <!DOCTYPE struts PUBLIC
              "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
              "http://struts.apache.org/dtds/struts-2.0.dtd"
      >
      <struts>
          
      <include file="struts-default.xml"/>
          
      <package name="tutorial" extends="struts-default">
              
      <action name="HelloWorld" class="tutorial.HelloWorld">
                  
      <result>HelloWorld.jsp</result>
              
      </action>
          
      </package>
      </struts>

       

    4. 新建SayHello.jsp

      參考“新建index.html文件”步驟,彈出如圖22所示對話框
      圖22 新建對話框
      圖22 新建對話框
      點擊“Next”, 進入下一步,如圖23所示

      圖23 新建JSP對話框
      圖23 新建JSP對話框
      在“File name”鍵入SayHello.jsp,點擊“Next”進入下一步,如圖24所示

      圖24 模板選擇對話框
      圖24 模板選擇對話框
      點擊“Finish”關閉對話框,并將SayHello.jsp的內容修改為:

      <%@ page contentType="text/html; charset=UTF-8" %>
      <%@ taglib prefix="s" uri="/struts-tags" %>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
          
      <head>
              
      <title>Say Hello</title>
          
      </head>
          
      <body>
              
      <h3>Say "Hello" to: </h3>
              
      <s:form action="HelloWorld">
                  Name: 
      <s:textfield name="name" />
                  
      <s:submit />
              
      </s:form>
          
      </body>
      </html>

       

    5. 新建HelloWorld.jsp(請參考上一步),HelloWorld.jsp的內容為:
      <%@ page contentType="text/html; charset=UTF-8" %>
      <%@ taglib prefix="s" uri="/struts-tags" %>
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
      <html>
          
      <head>
              
      <title>Hello</title>
          
      </head>
          
      <body>
              
      <h3><s:property value="name" /></h3>
          
      </body>
      </html>

       

    6. 重新打包發布應用程序

      先停止tomcat, 再將tomcat里webapps下的Struts2_HelloWorld.war和Struts2_HelloWorld文件夾刪除,參照“將應用程序打包到tomcat上”重新發布應用程序。

    7. 啟動tomcat,運行測試

      打開Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/SayHello.jsp,出現以下錯誤:

    HTTP Status 500 -


    type Exception report

    message

    description The server encountered an internal error () that prevented it from fulfilling this request.

    exception

    org.apache.jasper.JasperException: File "/struts-tags" not found
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:116)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:160)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:424)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:493)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1557)
    org.apache.jasper.compiler.Parser.parse(Parser.java:127)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:212)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:156)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:296)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:299)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:315)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    

     

    note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.


    Apache Tomcat/5.5.23

    max老師曾經說過是少了某個jar包,但是我在WEB-INF/lib中導入了struts2.0.9的所有jar包。
    我的這個Project問題究竟出在哪里了?以我的判斷應該是web.xml和jar包的問題,但是我真的找不出來了。我都被這個struts2整得心力交瘁了。有哪位大哥大姐叔叔阿姨能夠幫幫我?
    最好能夠給我點struts2的初學者教程就更好了!!!

    posted on 2007-08-21 21:46 Elven 閱讀(3076) 評論(6)  編輯  收藏

    FeedBack:
    # re: struts2.0
    2007-08-22 09:14 | mismo
    不會strut,頂一個  回復  更多評論
      
    # re: struts2.0
    2007-08-23 17:03 | 俗人
    請教,怎么在struts2中配置數據庫連接池啊,謝謝了啊   回復  更多評論
      
    # re: struts2.0
    2007-08-27 11:03 | asgard
    org.apache.jasper.JasperException: File "/struts-tags" not found
    不是都告訴你錯誤了么?
    教程是死的,大家的環境千變萬化,不可能一帆風順的。

    最好的檢查辦法就是手動在你的應用下的lib文件夾看看確定不缺少jar包,不要通過IDE。
      回復  更多評論
      
    # re: struts2.0
    2007-10-11 11:07 | syz
    沒用的包不要導進去,只導這四個就行commons-logging-1.0.4.jar,freemarker-2.3.8.jar,ognl-2.6.11.jar,struts2-core-2.0.9.jar,xwork-2.0.4.jar,struts-tags" not found這個問題可以在web.xml中加一個<tablib>來引用struts-tags.tld
      回復  更多評論
      
    # re: struts2.0
    2008-07-25 10:42 | wk
    樓上的高手,加個QQ咯
      回復  更多評論
      
    # re: struts2.0
    2008-09-05 09:03 | chenwangdu
    如果采用虛擬目錄的話,docBase 指到WEB-INF目錄的上一級目錄!
    chenwangdu@vip.citiz.net  回復  更多評論
      

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


    網站導航:
     

    <2007年10月>
    30123456
    78910111213
    14151617181920
    21222324252627
    28293031123
    45678910

    常用鏈接

    留言簿(3)

    隨筆分類

    隨筆檔案

    文章檔案

    搜索

    •  

    最新評論

    • 1.?re: struts2.0
    • 如果采用虛擬目錄的話,docBase 指到WEB-INF目錄的上一級目錄!
      chenwangdu@vip.citiz.net
    • --chenwangdu
    • 2.?re: struts2.0
    • 樓上的高手,加個QQ咯
    • --wk
    • 3.?re: struts2.0
    • 評論內容較長,點擊標題查看
    • --syz
    • 4.?re: 還是struts2問題
    • 為什么不直接使用wtp呢,完整的集成環境,非要自己配置干什么?
    • --cherishchen
    • 5.?re: 還是struts2問題
    • 多半是因為你的web.xml中有什么錯誤導致的,可以查tomcat的日志文件,看看其中有什么exception
    • --Tiger F

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 真人做A免费观看| 亚洲麻豆精品国偷自产在线91| 亚洲一卡2卡4卡5卡6卡在线99| 国产在线国偷精品产拍免费| 在线看片v免费观看视频777 | 成人区精品一区二区不卡亚洲| 无码成A毛片免费| 亚洲色精品三区二区一区| 亚洲无线一二三四区手机| 96免费精品视频在线观看| 亚洲精品国产首次亮相| 亚洲国产精品SSS在线观看AV| 成人影片麻豆国产影片免费观看| 在线播放免费人成视频网站| 亚洲成综合人影院在院播放| 成人浮力影院免费看| 国产亚洲福利一区二区免费看| 亚洲国产精品人人做人人爱| 最近中文字幕国语免费完整| 人妻巨大乳hd免费看| va天堂va亚洲va影视中文字幕| 国产亚洲精品久久久久秋霞| 特级做a爰片毛片免费看| 亚洲欧洲综合在线| 国产成人精品日本亚洲专区 | 亚洲AV色无码乱码在线观看| 亚洲AV日韩AV永久无码免下载| 免费一级毛片在线播放| 精品免费人成视频app| 一级毛片免费全部播放| 亚洲精品无码人妻无码| 免费a级毛片18以上观看精品| 国产99视频精品免费专区| 亚洲爆乳无码精品AAA片蜜桃| 五月天网站亚洲小说| 亚洲黄黄黄网站在线观看| 天天拍拍天天爽免费视频 | 久久久久亚洲av毛片大| 日韩免费视频播放| a色毛片免费视频| 高清免费久久午夜精品|