Java框架程序员IT

Struts2系列之-----入门

2016-11-29  本文已影响113人  RonaldoWang

主要内容


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种方式

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


数字大的会覆盖数字小的

 设置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="">`

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(){}
要求:

要求:

动作类:继承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的知识点还有许多,这里只是简单的介绍一下基本概念。下一篇不出意外是写拦截器的文章吧!

上一篇 下一篇

猜你喜欢

热点阅读