首页 > 代码库 > 框架学习Struts2之HelloWord

框架学习Struts2之HelloWord

一、概述

  Struts2是基于MVC设计模式的web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts作为控制器(Controller)来建立模型与视图之间的数据交互。Struts2是Struts1的下一代产品,是在WebWork技术基础上进行合并的全新的框架,其全新的体系结构与Struts1差距很大。Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全分离,所以Struts2可以理解为WebWork的更新产品。虽然从Struts1到Struts2有着巨大的变化,但是相对于WebWork,Struts2的变化很小。

 

二、环境搭建

  首先我们需要相关jar包

 

Struts2的开发包下载地址:https//struts.apache.org/  下载完开发包后进行解压所需jar包就在解压后的lib包下一下为Struts2所需的jar包

技术分享

三、Action的创建与配置

  1. 创建Action的三种方式:

          1).直接创建类,在这个类中编写一个public String execute()方法,该方法没有任何参数

          2).创建一个类实现Action接口并重写execute()方法

          3).创建一个类基层ActionSupport类

  2.配置sruts2的访问路径

        1)struts2核心配置文件:核心配置文件的名称和位置都是固定的 在src下 名称为struts.xml(可以分模块引入)

        •  引入dtd约束:

          <!DOCTYPE struts PUBLIC
          "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
          "http://struts.apache.org/dtds/struts-2.3.dtd">     

        • <struts>

        • <constant name = "struts.i18n.encoding" value = "http://www.mamicode.com/UTF-8"></constant>
        • <package name = "helloword" extends = "struts-default" namespace = "/">

              <action name = "hello" class = "带有包名的action类">

               <result name = "方法返回值">/helloword.jsp</result>

               </action>

            </package>

            </struts>

             2).配置struts过滤器(在web.xml中)

            <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>

          3).分模块开发的配置文件:单独写配置文件,然后把配置文件引入到核心配置文件中在引入helloword.xml文件

            <include file = "cn/.路径./helloword.xml"></include>(在struts标签下)


三、Struts2的执行过程

技术分享

 

四、配置文件的解释

         1.package标签:类似于代码包,区别不同的action,要配置acion必须先配置package标签。

                 name属性:它的值跟功能没有关系,在一个配置文件中可以写多个package,但是name值不能相同。

                 extends属性:该属性值固定为struts-default   有了这个属性之后再package里面配置的action类才具有功能。

                 namespace属性:该属性值与action标签里面的name值一起组成访问路径。默认值为“/”

         2.action标签: 

                name属性:配置action的访问路径,与package中的name一起组成访问路径,三它的值不不能与娶其他action中的相同。               

                class属性:所需配置action类的全路径g

                method属性:比如在action默认执行的方法是execute,如果想让他执行其他方法可在此配置,可配置多个。

         3.result标签:该标签里面的值为访问路径,执行action时会访问该路径下的页面

                name属性:和方法的返回值一样

                type属性:配置如何到返回路径中(转发or重定向)

          4.constant标签:修改struts2的默认属性值用的 一般不用修改。还有两种修改的方法分别是在src下配置一个struts.propeties文件进行修改和在web.xml文件中进行配置

 

框架学习Struts2之HelloWord