到Apache下載Struts 2.0包
點擊菜單File\New\Project,出現如圖1所示對話框圖1 新建工程對話框選擇Web\Dynamic Web Project,點擊“Next”,出現圖2對話框
圖2 新建動態Web工程對話框在“Project Name”中鍵入Struts2_HelloWorld,點擊“New”,出現以下對話框
圖3 新建服務器運行時對話框選擇“Apache\Apache Tomat v5.5”,點擊“Next”,出現以下對話框
圖4新建服務器運行時對話框點擊“Finish”,關閉對話框。
圖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子窗口
右鍵點擊,Struts2_HelloWorld\Java Resources: src,出現如圖7所示菜單圖7 新建Other菜單點擊“Other”,出現新建對話框,如圖8所示
圖8 新建對話框點擊“Next”,出現新建文件對話框,如圖9所示
圖9 新建文件對話框在“File name”中鍵入struts.xml,點擊“Finish”,然后將struts.xml的內容修改為:
右鍵點擊Struts2_HelloWorld\WebContent,出現如圖10所示的菜單圖10 新建Other菜單點擊“Other”,出現新建對話框,如圖11所示
圖11 新建對話框選擇Web\HTML,點擊“Next”出現如圖12所示的對話框
圖12 新建HTML頁面對話框在“File Name”中鍵入index.html,點擊“Next”,出現如圖13所示的對話框
圖13 模板選擇對話框點擊“Finish”,將index.html的內容修改為以下內容:
右鍵點擊Struts_HelloWorld,出現如圖14所示的菜單圖14 工程菜單點擊“Export\WAR file”,出現如圖15所示的對話框
圖15 輸出對話框選擇“Web\WAR file”,點擊“Next”,出現如圖16所示的對話框
圖16 輸出路徑對話框輸入war文件的路徑(如%tomcat%\webapps\Struts2_HelloWorld.war),點擊“Finish”關閉對話框。
打開你的Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/,窗口輸出如圖17所示圖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老師的一模一樣。
新建類包(package)
右鍵點擊Struts2_HelloWorld\Java Resources: src,出現如圖18所示菜單圖18 新建菜單"點擊“New\Package”,出現如圖19所示對話框
圖19新建Java類包對話框在“Name”鍵入tutorial,點擊“Finish”關閉對話框。
右鍵點擊Struts2_HelloWorld\Java Resources: src\tutorial,出現如圖20所示菜單圖20 新建菜單點擊“New\Class”,出現如圖21所示對話框
圖21 新建Java類對話框在“Name”中鍵入HelloWorld,在“Superclass”中鍵入com.opensymphony.xwork2.ActionSupport,點擊“Finish”關閉對話框。將HelloWorld.java的內容修改為:
參考“新建index.html文件”步驟,彈出如圖22所示對話框圖22 新建對話框點擊“Next”, 進入下一步,如圖23所示
圖23 新建JSP對話框在“File name”鍵入SayHello.jsp,點擊“Next”進入下一步,如圖24所示
圖24 模板選擇對話框點擊“Finish”關閉對話框,并將SayHello.jsp的內容修改為:
先停止tomcat, 再將tomcat里webapps下的Struts2_HelloWorld.war和Struts2_HelloWorld文件夾刪除,參照“將應用程序打包到tomcat上”重新發布應用程序。
打開Internet Explorer,鍵入http://localhost:8080/Struts2_HelloWorld/SayHello.jsp,出現以下錯誤:
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.
max老師曾經說過是少了某個jar包,但是我在WEB-INF/lib中導入了struts2.0.9的所有jar包。我的這個Project問題究竟出在哪里了?以我的判斷應該是web.xml和jar包的問題,但是我真的找不出來了。我都被這個struts2整得心力交瘁了。有哪位大哥大姐叔叔阿姨能夠幫幫我?最好能夠給我點struts2的初學者教程就更好了!!!