【J2EE】struts-2.3.16.3+apache-tomcat-8.0.9開發環境部署,「Hello World」的實現。

一、在官網下載Struts2的開發包html

下載連接以下:java

http://120.203.229.30/5ff/2bc79/5ff16ae8698e1c321758a8f03a1bc0939892bc79/struts-2.3.16.3-all.zip?n=struts-2.3.16.3-all.zipweb

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的開發環境部署。

相關文章
相關標籤/搜索