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下载最新版本的安装包。
解压后看到

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

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

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

`<?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
 <struts>
<package name="p1" extends="struts-default">
<action name="" class="" method="">
</action>
</package>
</struts>`

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

5.为dtd配置映射

6.配置控制器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>`

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

Struts2的执行过程及原理

看一下这张大图

此图并非原创,感谢作者

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

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

Struts2的基本配置

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

`  <filter>
   //配置核心Filter的名字
    <filter-name>struts2</filter-name>
   //配置核心Filter的类名
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

   </filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    //要拦截的URL,/*指拦截所有用户
    <url-pattern>/*</url-pattern>
</filter-mapping>`

2.配置struts.xml

`<struts>
<package name="p1" extends="struts-default">
<action name="" class="" method="">
</action>
</package>
</struts>`

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的工作模式为开发模式,此时当修改xml文件内容时,不必重新部署Tomcat了

`<constant name="struts.devMode" value="true"></constant>`

2.配置包含(include)

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

`<include file="other.xml"></include>`

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

3.配置包(package)

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

4.配置命名空间

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

5.配置拦截器

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

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

声明一个拦截器:

`<interceptors>
<interceptor name="loginintercepter" class="com.wty.intercepter.MyIntercepter"></interceptor>
</interceptors>`

使用拦截器:

`<interceptor-ref name="loginintercepter"></interceptor-ref>`

Struts2的Action

`<action name="" class="">
 <result>/main.jsp</result>
 </action>`

name属性:动作名称

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

要求:

  • public

    • 返回值必须是String

    • 没有参数

动作类:继承ActionSupport

`public class RegisterUser extends ActionSupport{}`

配置结果集

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

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

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

2、result元素中type的取值

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

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

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

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

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

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

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

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

结语

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值