Struts2学习

Struts2学习笔记

概述:struts2是属于Web层的框架,本质上,它是一个拦截器。开发Struts2的主要流程如下
    1.创建一个Action类
    2.创建Struts.xml
    3.**在web.xml中配置过滤器**  这一步极其重要,如果不配置该过滤器(org.apache.struts2.dispatcher.FilterDispatcher)将会导致无法找到项目,错误代码404。

创建Action类的方式

创建Action类的方式共有三种:
1.创建一个普通类,不继承Struts框架中相关的类,也不实现相关的接口。
2.创建一个类,并让该类继承Struts框架中的ActionSupport类(这种方式比较常用)
3.创建一个类,并让该类实现Struts框架中的Action接口


struts.xml中的配置

该文件的名字不可变更,必须为struts.xml,因为在Struts2框架的源码中,强制默认查询和加载此文件,文件名不可随意变更。除此之外,该文件的存放目录也是固定的,务必保存在src目录下。
在该文件中,主要配置的标签有三个:分别是package、action、result
其中package标签类似于Java中的包,里面是用来存储不同的action标签和相应的配置信息;action标签则是用来指定action的访问路径;result标签是和action标签成对使用,依据Action类中方法的返回值,配置去往不同的页面或者action中。
1.package标签:package标签主要有三个属性:name、extends和namespace。name属性值是用来区分不同的Action,name属性值不可重。extends属性值为”struts-default”,这是一种固定写法,是为了保证action类具有Action的功能,如同Servlet需要继承HttpServlet。namespace标签的属性值一般默认为”/”,因为它需要和action标签中的name属性值共同构成访问路径。
2.action标签:该标签主要也有三个属性:name、class和method。name标签的属性值和package标签的namespace属性值共同构成Action类的访问路径。class标签的属性值是该Action类的全路径。method标签的属性值则是用来配置需要执行Action类的方法,而不是执行默认的execute()方法。除此之外在Action中,我们可以自己配置某方法不被拦截:

<interceptor-ref name="">
        <param name="execludeMethods">方法名1,方法名2...</param>
    </interceptor-ref>

在package标签中,action标签不唯一,一个package标签可以有多个action标签。但是每一个action标签的name属性值必须唯一。
3.result标签:result标签主要有两个属性,分别是name和type。name标签的属性值需要和该Action中的方法的返回值一样,如果一个方法的返回值不同,那么可以依据这个方法的返回值在一个action标签中配置多个result标签。type标签的属性值主要是做重定向和转发操作,而这两个操作又有两个不同的目的地,分别是Action类和页面,那么这个标签就有四个属性值:去网页面时的转发操作是(dispatch)、重定向操作是(redirect);去往Action类的转发操作是(chain)、重定向操作是(redirectAction)

除此之外,struts.xml中还有一些其他的配置标签,不在一一赘述。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章