Struts2入门

前言目前struts2框架的应用是流行最广的。它是基于WebWork技术开发的全新Web框架。Struts 通过过滤器拦截要处理的请求,主要流程为:

           客户端发送一个http请求------------------>读取Web.xml中的过滤链,包括:ActionContextClearUp过滤器、其他web应用过滤器以及SrutsPrepareAndExcuteFilter过滤器(必备的)---------------->Action映射器将查找需要调用的Action对象,并返回Action对象的代理(如通过连接找到<a href="ognl.action">测试</a>)----------------->读取struts.xml配置文件中的相关配置,在经过一系列的拦截过滤后,Action容器调用指定的Action对象,将返回相应的jsp或freemaker等结果视图。-------------------->经过一系列的过滤拦截,HTTP请求回应给客户端。

开发struts所必需要的类库文件。

名称说明
struts2-core-2.1.14.jar Struts 的核心类库
xwork-core-2.1.6.jarXwork的核心类库
ognl-2.7.3.jarOgnl表达式语言类库
commons-logging-1.0.4.jarLog4j日志支持类库
freemarker-2.3.15.jarFreemarker模板语言支持类库
commons-io-1.3.2.jar处理IO操作的工具类库
commons-fileupload-1.2.1.jar文件上传支持类库
三、如何新建一个简单的Struts2程序。

         (1)新建web项目。然后将Struts2的支持类库文件添加到WEB-INF目录的lib文件夹中。

         (2)在web.xml文件中声明struts2提供的过滤器,类名为 org.apache.struts2.dispatcher.ng.filter.StrutsPreparedAndExecuteFilter.关键代码如下:

          <!-- Struts2过滤器 -->
     <filter>
        <!-- 过滤器名称 -->
        <filter-name>struts2</filter-name>
        <!-- 过滤器类 -->
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
    <!-- Struts2过滤器映射 -->
    <filter-mapping>
        <!-- 过滤器名称 -->
        <filter-name>struts2</filter-name>
        <!-- 过滤器映射 -->
        <url-pattern>/*</url-pattern>
    </filter-mapping>

       (3)在web项目源码文件夹中,创建名称为struts.xml的配置文件,并在该文件中配置Action对象。代码如下:

     <struts>
    <!--声明常量  -->
    <constant name="struts.devMode" value="true"></constant>
    <package name="myPackage" extends="struts-default" namespace="/">
       <!-- 定义action -->   
        <action name="ognl" class="com.lyq.action.OGNLAction">
            <!-- 结果映射 -->
             <result name="success">success.jsp</result>
        </action>
    </package>
</struts>

          说明:1、<package> 标签:声明一个包,通过name属性指定包的名称为myPackage,并通过extends属性指定此包继承于struts-default包。

                     2、<action>标签:用于定义Action对象,它的name属性用于指定访问此Action的URL

                     3、<result>子元素:用于定义处理结果和资源之间的映射关系。

         技巧:在struts.xml文件中,Struts2的Action配置需要放置在包空间内,它类似于Java中的包的概念。通常情况下,声明的包需要继承于struts-default包。

       (4)新建一个java类继承ActionSupport。并在其中添加一些代码和属性。核心代码如:

               public class OGNLAction extends ActionSupport {
                private  static final long  serialVersionUID=1L;
                   private String name;//普通属性对象
                    private  Student student;      //学生对象
                    Map<String,Object> request;
                    public OGNLAction() {
                     student = new Student();//实例化学生对象
                     student.setId(1);  //对学号赋值
                     student.setName("张三");
                     name="朱云";
                      request =(Map<String,Object>) ActionContext.getContext().get("request");
                    }

                      ......

                   }

       (5)创建一个页面xx.jsp,在该页面中编写一个超链接,用于访问上面所定义的Action对象,此链接所指向地址为ognl.action。

        <a href="ognl.action">测试</a>

      在struts2中,Action对象的默认访问后缀为“.action”  ,并非绝对的。后面可更改。

四、结果。

      


      以上为笔者学习笔记,仅为加深学习印象。如有错误,还请留言指教。

 



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值