1.创建web工程。

2.引人struct2所需要的jar包

     struts2-core-2.1.8.1.jar :Struts 2框架的核心类库
      xwork-core-2.1.6.jar :XWork类库,Struts 2在其上构建
      ognl-2.7.3.jar :对象图导航语言(Object Graph Navigation Language),
                               struts2框架通过其读写对象的属性
      freemarker-2.3.15.jar :Struts 2的UI标签的模板使用FreeMarker编写
      commons-logging-1.1.x.jar :ASF出品的日志包,Struts 2框架使用这个日志
                                                  包来支持Log4J和JDK 1.4+的日志记录。
      commons-fileupload-1.2.1.jar 文件上传组件,2.1.6版本后需要加入此文件
      commons-io-1.3.2.jar,上传文件依赖的jar包

3.创建jsp页面

 <a href="${pageContext.request.contextPath}/primer/helloWorldAction.action">

  helloWorld</a><br>

4.创建HelloWorldAction

  /*  在Struct中所以的action都要实现Action接口*/

     public class HelloWorldAction implements Action

    {  

       public String execute() throws Exception

        {

            System.out.println("HelloWorldAction execute");

             return "success";

         }

     }   

5.配置struct.xml文件

    * 在src下创建struct.xml文件

    *该文件的DTD规范在struts2-core-2.1.8.1.jar/struts-2.1.7.dtd文件中。

    *配置该xml文件

      <?xml version="1.0" encoding="UTF-8"?>
     <!DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
      "http://struts.apache.org/dtds/struts-2.1.7.dtd">
     <struts>
         <!-- 请求路径/primer/helloWorldAction.action -->
     
         <!--
              package:包(给java中的包类似),规范管理
              * name:包的名称:唯一,主要作用用于继承
              * namespace:命名空间 唯一,相当于房间号
              * extends="struts-default":继承
                 * 在struts2-core-2.1.8.1.jar/struts-default.xml文件存在如下的包 
                         底层代码<package name="struts-default" abstract="true">
                 * 为什么要继承struts-default包呢,后面在将?       
          -->
     
         <package name="primer" namespace="/primer"  extends="struts-default">
            <!--
              action:配置action的
                 * name:客户端请求访问的action的唯一名称(在包中唯一)
                 * class:要访问的action的完整类路径
             -->   
            <action name="helloWorldAction" class="cn.itcast.primer.HelloWorldAction">
            <!--
               result:处理action中execute()方法的返回值
                  * name:该属性的值要和execute()方法的返回值对应
                  * result标签的文本内容是要转向的路径
           
               public String execute() throws Exception {
            System.out.println("HelloWorldAction execute");
            return "success";
            }
             -->
              <result name="success">/primer/success.jsp</result>
              <result name="error">/primer/error.jsp</result>
            </action>
         </package>
     </struts>
     

  6.配置struct的过滤器,解析Struct.xml文件

     <filter>
       <filter-name>StrutsPrepareAndExecuteFilter</filter-name>
       <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
     </filter>
  
     <filter-mapping>
        <filter-name>StrutsPrepareAndExecuteFilter</filter-name>
        <url-pattern>/*</url-pattern>
     </filter-mapping>
    

7. 测试,在地址栏输入如下路径    
      http://localhost:808/itcast0706struts2/primer/test.jsp