Struts2 簡介

回顧Struts2的使用過程,網上搜的教程多多少少都會有點問題,從新記錄下建立過程,方便查閱。html

一、下載Struts2的jar包

下載地址:http://archive.apache.org/dist/struts/binaries/java

我用的是struts-2.3.14-all.zip這個版本web

二、建立一個web project項目

下面給出全部文件均建立完成後的工程師圖。apache

 

三、導入Struts2所需jar包

由於只是示例程序,只須要導入Struts 2支持最小的包就能夠了,網上不少教程中添加的最小包都有出入,教你們一個保險的方法。瀏覽器

解壓剛纔下載的壓縮包struts-2.3.14-all.zip,在apps文件夾下有個struts2-blank.war包,打開它,到WEB-INF/lib目錄下,以下圖所示,即爲所需的最小包。包含的包應該和具體的Struts版本有關。app

 

四、配置web.xml

下面進入到具體的配置編碼階段。jsp

打開web.xml,修改配置參數,修改後的具體配置以下。工具

 

  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.5"   
  3.     xmlns="http://java.sun.com/xml/ns/javaee"   
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee   
  6.     http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  7.   <display-name></display-name>   
  8.     
  9.   <!-- Struts2配置 -->  
  10.   <filter>  
  11.     <filter-name>struts2</filter-name>  
  12.     <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>  
  13.   </filter>  
  14.   <filter-mapping>  
  15.     <filter-name>struts2</filter-name>  
  16.     <url-pattern>/*</url-pattern>  
  17.   </filter-mapping>  
  18.     
  19. </web-app>  

這裏須要注意的是oop

這裏面填入的類, this

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

Since Struts 2.1.3, use StrutsPrepareAndExecuteFilter instead or StrutsPrepareFilterand StrutsExecuteFilter if needing using the ActionContextCleanUp filter in addition to this one..即,從Struts 2.1.3起已被標註爲過期的,改用StrutsPrepareAndExecuteFilter。
我剛用這個版本的時候仍是填的org.apache.struts2.dispatcher.FilterDispatcher
結果報錯

  1. ***********************************************************************  
  2. *                               WARNING!!!                            *  
  3. *                                                                     *  
  4. * >>> FilterDispatcher <<< is deprecated! Please use the new filters! *  
  5. *                                                                     *  
  6. *           This can be a source of unpredictable problems!           *  
  7. *                                                                     *  
  8. *              Please refer to the docs for more details!             *  
  9. *            http://struts.apache.org/2.x/docs/webxml.html            *  
  10. *                                                                     *  
  11. ***********************************************************************  


若是你也遇到如上的錯誤,要仔細再檢查下了。

 

 

五、配置struts.xml

下面須要建立struts.xml文件,配置strust2要調用的action。直接新建在src目錄下,那樣部署的時候會自動發佈到WEB-INF/classes目錄下,或者直接建立在WEB-INF/classes目錄下面。

  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.3.dtd">  
  5.   
  6.   
  7.     <struts>  
  8.         <package name="struts2" extends="struts-default">  
  9.             <action name="HelloWorld" class="tutorial.HelloWorld">  
  10.                 <result>/HelloWorld.jsp</result>  
  11.             </action>  
  12.         </package>  
  13.     </struts>  


其中,package元素,做用相似於Java包的機制,他是用於分門別類的一個工具,extends屬性如他的名字同樣,它繼承了struts-default這個包的全部信息,通常咱們本身建立一個包最好都繼承它,由於他爲咱們提供了絕大部分的功能,你能夠在struts2-core的jar包中的struts-default.xml文件中找到這個包。action元素對應與你的表單,例如你的表單的action="welcome",那麼該表單提交後就會將參數交予action的name="welcome"的實現類處理。result元素爲action的結果,它由動做類返回的控制字段選擇。

六、寫action類(HelloWorld.java)

這個類主要用於struts2跳轉到這個action後。默認執行execute()方法。並根據結果返回字符,而後struts.xml根據返回的字符跳到相應的頁面

  1. package tutorial;  
  2. import com.opensymphony.xwork2.ActionSupport;  
  3.   
  4. public class HelloWorld extends ActionSupport  
  5. {  
  6.     public final static String MESSAGE = "Struts2 is up and running ...";  
  7.       
  8.     private String message;  
  9.   
  10.   
  11.     /** 
  12.      * @return the message 
  13.      */  
  14.     public String getMessage()  
  15.     {  
  16.         return message;  
  17.     }  
  18.   
  19.   
  20.     /** 
  21.      * @param message the message to set 
  22.      */  
  23.     public void setMessage(String message)  
  24.     {  
  25.         this.message = message;  
  26.     }  
  27.   
  28.   
  29.     public String execute() throws Exception  
  30.     {  
  31.         setMessage(MESSAGE);  
  32.         return SUCCESS;  
  33.     }  
  34. }  

七、寫jsp頁面

新建一個jsp頁面來呈現信息。

 

  1. <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  3.   
  4. <%@ taglib prefix="s" uri="/struts-tags" %>  
  5.   
  6. <html>  
  7.   <head>      
  8.     <title>Hello World!</title>      
  9.   </head>  
  10.     
  11.   <body>  
  12.     <h2><s:property value="message" /></h2>  
  13.   </body>  
  14. </html>  

 

 

八、部署運行


在Tomcat中運行該項目,而後打開瀏覽器,在地址欄中輸入:http://localhost:8080/Struts2Demo/HelloWorld
IE效果以下。

 

至此,最簡單的Struts2的使用方法介紹完畢。

相關文章
相關標籤/搜索