1. 什么是struts2框架?
框架是实现了部分功能的代码的半成品,使用框架能够提高企业开发的效率。目前主流的框架是SSH(Struts2+Spring+Hibernate)。而struts2是一款标准的MVC框架,用于javaweb开发。MVC为:model模型、view视图和controller控制器。
2. 使用的struts2要导入的jar包
需要导入的jar包有如下,目前是13个,但是这不是固定的。
3. 对struts2进行配置
<1>在web.xml中配置前端控制器(也称核心控制器)
其实就相当于一个Filter过滤器,配置的目的是为了能够使struts2能够运行。
<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>
<2>创建一个struts.xml配置文件
这个其实就是struts2框架的配置文件,为了struts2框架流程能够执行。并且名字必须为struts.xml,文件存放的位置必须在classes下。如果使用的是Myeclipse开发,那么直接存放在src下便可以。在struts.xml的格式如下:
<?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="default" namespace="/" extends="struts-default">
<action name="XXX" class="cn.itcast.action.XXXAction" method="XXXsay">
<result name="good">/XXX.jsp</result>
</action>
</package>
</struts>
struts.xml的标签如下:
标签 | 子元素 | 作用 |
---|---|---|
package | 声明包,用于管理action标签 | |
name | 声明一个包名,在同一个包内,包名是唯一的 | |
namespace | 与action标签的name属性确定一个访问路径。默认值为”“。 | |
extends | 它代表继承的包名 | |
abstract | 取值为boolean类型,如果为true,代表这个包用于被继承 | |
action | 声明一个action | |
name | 声明一个action名称,在同一个包内必须是唯一的 | |
class | Action文件全名。默认值:com.opensymphony.xwork2.ActionSupport | |
method | 要访问的Action类中的方法名,该方法必须为无参,返回值为String。默认值为execute。 | |
result | 用于确定返回结果的类型。默认值为:”success” | |
name | 用于和Action方法的返回值进行比较,确定一个跳转路径或资源 |
4. struts配置文件加载顺序
前面说过,我们要使用struts框架就必须创建一个Filter过滤器,为了能够让struts运行。现在我们来探究为什么要使用配置这个Filter文件。
这个Filter文件加载的是StrutsPrepareAndExecuteFilter类文件,在这个类文件的初始化init方法中有个操作是初始化Dispatcher文件的操作。在这个Dispatcher类的init方法中定义了struts2配置文件的加载顺序。
init_DefaultProperties(); // [1]
init_TraditionalXmlConfigurations(); // [2]
init_LegacyStrutsProperties(); // [3]
init_CustomConfigurationProviders(); // [5]
init_FilterInitParameters() ; // [6]
init_AliasStandardObjects() ; // [7]
对这其中的顺序进行分析:
[1] default.properties文件
位置:org/apache/struts2/default.properties
作用:定义了struts2中所有的常量。
[2] struts-default.xml
位置:struts的core核心jar包中
作用:配置了bean、interceptor(拦截器)、result等
struts-plugin.xml
作用:struts2框架中所使用的插件的配置文件。(如果没有使用插件,则不存在配置文件。)
struts.xml
我们配置的struts2的文件。
[4] struts.properties
作用:这个文件是自定义的,能够达到在自定义常量的目的。
[5] web.xml
作用:第一次是我们服务器启动会加载这个文件,而这次是struts框架会去查找某些值。
在开发当中,后加载的文件配置会将先加载的文件配置覆盖,比如设置了某个数据的值。