Struts2系列之-----入门

主要内容

  • Struts2简介
  • 环境搭建
  • Struts2的执行过程及原理
  • Struts2的基本配置
  • Struts2的配置元素
  • Struts2的Action
  • 配置结果集

Struts2简介

Struts2是Apache发行的MVC开源框架,它只是表现层的MVC框架。

Struts1也是Apache发行的MVC开源框架,其核心是Servlet,随着业务的增大,弊端也被不断放大。Struts2是基于WebWork的框架技术,而不是沿用Struts1的核心技术。因此,Struts2和Struts1并没有太大的关系。

环境搭建

1.读者去http://struts.apache.org下载最新版本的安装包。
解压后看到

Struts2系列之-----入门_第1张图片

2.新建一个web工程,导入jar包

找到Struts2自带的例子中,struts-blank的war包,在它的\WEB-INF\lib目录下的jar包全拷贝。

3.在src下新建一个struts.xml文件并添加dtd约束

`
 
 




`

4.新建一个dtd文件夹,放入dtd

Struts2系列之-----入门_第2张图片

5.为dtd配置映射

Struts2系列之-----入门_第3张图片

6.配置控制器web.xml

`   
    struts2
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
    

    struts2
    /*
`

7.启动Tomcat,如果不报错,那么恭喜你环境ok了。

Struts2的执行过程及原理

看一下这张大图

Struts2系列之-----入门_第4张图片
此图并非原创,感谢作者

此图并非原创,感谢作者。。。。

这张图很详细的分析了运行流程及原理

Struts2的基本配置

1.配置Struts框架的核心Filter(web.xml)

`  
   //配置核心Filter的名字
    struts2
   //配置核心Filter的类名
    org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

   

    struts2
    //要拦截的URL,/*指拦截所有用户
    /*
`

2.配置struts.xml

`




`

package中name属性必须唯一,继承了struts-default,struts-default.xml中配置了很多内建的Bean,结果类型,拦截器,和拦截器栈,及默认的拦截器栈。Struts2框架每次都会自动加载这个struts-default.xml文件,之后再加载自己写的struts.xml文件

Struts2的配置元素

1.配置常量(constant)

有3种方式

  • 在struts.properties中配置,不建议使用
  • struts.xml中配置,推荐,可以使用constant标签
  • web.xml中配置,不建议。原因是对于和Web整合的框架来说,应尽量在框架自身的文件(struts.xml)中配置和框架相关的信息

既然有多种方式配置常量,那么加载顺序是什么呢?


Struts2系列之-----入门_第5张图片

数字大的会覆盖数字小的

 设置Struts2的工作模式为开发模式,此时当修改xml文件内容时,不必重新部署Tomcat了

``

2.配置包含(include)

Struts2允许将一个配置文件分解成多个配置文件,从而达到更容易维护。

``

注意:other.xml最好和struts.xml都放到WEB-INF/classes目录中,other.xml必须也有dtd约束等信息。

3.配置包(package)

``
  • name属性必选,唯一值
  • extends属性可选
  • namespace属性可选,定义了包的命名空间
  • abstract属性可选,在当前包下是否为一个抽象包,抽象包不能包含Action

4.配置命名空间

上面提到的namespace属性,如果不写,默认是"",如果namespace="/test" 那么可以这么访问:http://localhost:8080/项目名称/test/动作名称.action

5.配置拦截器

拦截器是Struts中的非常重要的概念,这里先简单介绍。接下来的一篇文章我就是写拦截器的。

拦截器简单点说就像Java Web应用的过滤器。就是在多个Action处理之前或之后加入开发人员自定义的代码。

声明一个拦截器:

`

`

使用拦截器:

``

Struts2的Action

`
 /main.jsp
 `

name属性:动作名称

class属性:动作类全名。默认的动作类是:com.opensymphony.xwork2.ActionSupport
method:动作类中的方法名称。默认是public String execute(){}
要求:

要求:

  • public

  • 返回值必须是String

  • 没有参数

动作类:继承ActionSupport

`public class RegisterUser extends ActionSupport{}`

配置结果集

1、result元素
作用:
为动作指定结果视图

属性:
name:逻辑视图的名称,对应着动作方法的返回值。
/success.jsp

如果name属性不写,默认是success

2、result元素中type的取值

dispatcher:(默认值)
使用请求转发,转向一个页面。

redirect:
使用重定向,转向一个页面。

redirectAction:注意:使用的是重定向。

a.重定向到另一个相同名称空间的动作。

b.重定向到不同名称空间的动作

chain:注意: 使用的是请求转发。

a.转发到另一个相同名称空间的动作。

b.请求转发到不同名称空间的动作

结语###

Struts2的知识点还有许多,这里只是简单的介绍一下基本概念。下一篇不出意外是写拦截器的文章吧!

你可能感兴趣的:(Struts2系列之-----入门)