一、在官網下載Struts2的開發包html
下載連接以下:java
http://mirrors.cnnic.cn/apache//struts/documentation/struts-2.3.16.3-docs.zipapache
http://mirrors.cnnic.cn/apache//struts/source/struts-2.3.16.3-src.zipapi
Struts2當前最新版本爲:tomcat
解壓struts-2.3.16.3-all.zip獲得struts-2.3.16.3,開發包的jar文件都存放在lib文件夾中。服務器
二、加載jar包到工程中的庫文件夾部分,使用時候最好都包好紅框中的7個jar文件。app
如何建立名稱爲struts2的用戶庫文件夾,方法以下:框架
eclipse窗口的菜單欄中選擇window--Preferences,選擇Java--Build Path,點擊下面的User Libraries。而後新建便可。eclipse
三、設置工程屬性,使得編譯時候可以將用戶引入的庫文件自動拷貝到WEB-INF/lib路徑下去編譯工程,若是沒有此步,會致使編譯的時候找不到class的錯誤。這裏固然也能夠直接將庫文件放到lib中去,可是建議使用前面的方法。
四、新建index.jsp文件,同時拷貝jsp文件必要的庫文件servlet-api.jar文件到WEB-INF/lib目錄下
代碼解釋:第12行的value必須等於"mes",由於這裏的"mes"是和HelloWorldAction類中定義的私有變量private String mes保持一致的,與方法對應與HelloWorldAction類中的String getMes()方法。
1 <%@ page language="java" pageEncoding="UTF-8"%> 2 <%@ page import="java.util.*" %> 3 <%@ taglib prefix="s" uri="/struts-tags" %> 4 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 5 <html> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 8 <title>welcome Struts2(歡迎頁面)</title> 9 </head> 10 <body> 11 <h2> 12 <s:property value="mes"/> 13 <!-- value is equal to HelloWorldAction.java private mes --> 14 </h2> 15 </body> 16 </html>
五、Run index.jsp在Tomcat服務器上運行,運行後將在eclipse左側的工程欄自動生成Servers目錄。編輯目錄下的web.xml文件,添加以下代碼:
1 <filter> 2 <filter-name>struts2</filter-name> 3 <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class> 4 </filter> 5 <filter-mapping> 6 <filter-name>struts2</filter-name> 7 <url-pattern>/*</url-pattern> 8 </filter-mapping>
請注意編寫時候,filter節點和filter-mapping節點下的filter-name必須保持一致,均爲struts2,且filter-class務必書寫準確。
注:該步驟運行index.jsp主要是要自動生成web.xml文件,而後按照要求設置xml文件,以供struts2框架配置
另外特別注意,Apache Tomcat的安裝路徑不能存在空格,不然會可能會出一些意想不到的錯誤。
六、編寫Action類
Struts2的核心功能是Action類,Action類是一段特定的URL請求時執行的代碼,過濾器(FilterDispatcher)會根據請求的URL不一樣,執行相應的Action類,Action類執行的結果通常對應於一個result展示給用戶。result經過字符串名字來標識,過濾器根據Action返回的結果字符串選擇對應的result展現給用戶,Action與其對應的result在struts.xml文件中進行配置。
通常Action類會繼承com.opensymphony.xwork2.ActionSupport類,並重寫此類中的execute()方法。在src目錄下建立一個新類HelloWorldAction.java,代碼以下:
1 //javac -classpath "C:\Program Files\Java\jdk1.7.0_60\lib\tools.jar;D:\Java\struts-2.3.16.3-all\struts-2.3.16.3\lib\xwork-core-2.3.16.3.jar" HelloWorldAction.java 2 3 package com.struts2; 4 import com.opensymphony.xwork2.ActionSupport; 5 6 public class HelloWorldAction extends ActionSupport{ 7 private String mes; 8 9 public String getMes(){ 10 return mes; 11 } 12 public void setMes(String _mes){ 13 this.mes=_mes; 14 } 15 16 public String execute()throws Exception{ 17 mes="Hello World!"; 18 return SUCCESS; 19 } 20 }
手動編譯生成class文件,編譯命令爲:
javac -classpath "C:\Program Files\Java\jdk1.7.0_60\lib\tools.jar;D:\Java\struts-2.3.16.3-all\struts-2.3.16.3\lib\xwork-core-2.3.16.3.jar" HelloWorldAction.java
七、配置struts.xml文件(...\WebContent\WEB-INF\classes\路徑下)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> 3 <struts> 4 <include file="stuts-default.xml"></include> 5 <package name="default" extends="struts-default"> 6 <action name="Hello" class ="com.struts2.HelloWorldAction" method="execute"> 7 <result name="success">/index.jsp</result> 8 </action> 9 </package> 10 </struts>
第6行,action節點中的name屬性等於"Hello",這裏就對應訪問action的URL名稱:http://localhost:8080/StrutsDemoProject/Hello.action
com.struts2.HelloWorldAction 爲HelloWorldAction的class路徑
八、拷貝struts2開發包中必要的jar文件到Tocmat安裝路徑下的lib文件夾中,運行index.jsp程序,這時應該不會在eclipse的Console窗口出現class not found 的錯誤。(這裏須要注意若是在WEB-INF/lib下和tomcat的安裝目錄的lib下面同時放了struts2的jar文件的時候,這個時候會出現jar文件衝突的錯誤,另外也可能出現其餘意想不到的問題。屆時,apache運行失敗,問題很難排查。)
C:\apache-tomcat-8.0.9\lib下新增的struts2的jar文件列表以下:
struts2-core-2.3.16.3.jar ognl-3.0.6.jar freemarker-2.3.19.jar
commons-logging-1.1.3.jar javassist-3.11.0.GA.jar
xwork-core-2.3.16.3.jar commons-lang3-3.1.jar
正常狀況下此時運行index.jsp的Console界面是:(這個的錯誤緣由是reques是null,這裏是屬於正常現象。由於http://localhost:8080/StrutsDemoProject/Hello.action就會正常顯示了。)
七月 27, 2014 10:53:38 下午 org.apache.struts2.dispatcher.Dispatcher error
嚴重: Exception occurred during processing request: null
java.lang.NullPointerException
九、struts2部署後的,運行界面以下
到這裏就完成了sturts2的開發環境部署。