回顾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,修改配置参数,修改后的具体配置以下。工具
- <?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>
-
-
- <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>
这里须要注意的是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
结果报错
- ***********************************************************************
- * 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
下面须要建立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的结果,它由动做类返回的控制字段选择。
六、写action类(HelloWorld.java)
这个类主要用于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;
-
-
-
- public String getMessage()
- {
- return message;
- }
-
-
-
- public void setMessage(String message)
- {
- this.message = message;
- }
-
-
- public String execute() throws Exception
- {
- setMessage(MESSAGE);
- return SUCCESS;
- }
- }
七、写jsp页面
新建一个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>
八、部署运行
在Tomcat中运行该项目,而后打开浏览器,在地址栏中输入:http://localhost:8080/Struts2Demo/HelloWorld
IE效果以下。


至此,最简单的Struts2的使用方法介绍完毕。