下載地址:http://archive.apache.org/dist/struts/binaries/html
我用的是struts-2.3.14-all.zip這個版本java
下面給出全部文件均建立完成後的工程師圖。web
由於只是示例程序,只須要導入Struts 2支持最小的包就能夠了,網上不少教程中添加的最小包都有出入,教你們一個保險的方法。apache
解壓剛纔下載的壓縮包struts-2.3.14-all.zip,在apps文件夾下有個struts2-blank.war包,打開它,到WEB-INF/lib目錄下,以下圖所示,即爲所需的最小包。包含的包應該和具體的Struts版本有關。app
下面進入到具體的配置編碼階段。jsp
打開web.xml,修改配置參數,修改後的具體配置以下。工具
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <!-- Struts2配置 --> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
這裏須要注意的是this
這裏面填入的類, 編碼
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>url
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。
*********************************************************************** * WARNING!!! * * * * >>> FilterDispatcher <<< is deprecated! Please use the new filters! * * * * This can be a source of unpredictable problems! * * * * Please refer to the docs for more details! * * http://struts.apache.org/2.x/docs/webxml.html * * * *********************************************************************
下面須要建立struts.xml文件,配置strust2要調用的action。直接新建在src目錄下,那樣部署的時候會自動發佈到WEB-INF/classes目錄下,或者直接建立在WEB-INF/classes目錄下面。
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="struts2" extends="struts-default"> <action name="HelloWorld" class="tutorial.HelloWorld"> <result>/HelloWorld.jsp</result> </action> </package> </struts>
其中,package元素,做用相似於Java包的機制,他是用於分門別類的一個工具,extends屬性如他的名字同樣,它繼承了struts-default這個包的全部信息,通常咱們本身建立一個包最好都繼承它,由於他爲咱們提供了絕大部分的功能,你能夠在struts2-core的jar包中的struts-default.xml文件中找到這個包。action元素對應與你的表單,例如你的表單的action="welcome",那麼該表單提交後就會將參數交予action的name="welcome"的實現類處理。result元素爲action的結果,它由動做類返回的控制字段選擇。
這個類主要用於struts2跳轉到這個action後。默認執行execute()方法。並根據結果返回字符,而後struts.xml根據返回的字符跳到相應的頁面
package tutorial; import com.opensymphony.xwork2.ActionSupport; public class HelloWorld extends ActionSupport { public final static String MESSAGE = "Struts2 is up and running ..."; private String message; /** * @return the message */ public String getMessage() { return message; } /** * @param message the message to set */ public void setMessage(String message) { this.message = message; } public String execute() throws Exception { setMessage(MESSAGE); return SUCCESS; } }
新建一個jsp頁面來呈現信息。
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <%@ taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Hello World!</title> </head> <body> <h2><s:property value="message" /></h2> </body> </html>