sturts2核心组件struts.xml
2015-01-06 15:15
148 查看
Struts2框架的核心配置文件就是struts.xml,该文件主要负责管理Struts2框架业务的业务控制器Action。在默认的情况下,Struts2将自动加载在WEB-INF/classes路径下的struts.xml文件中
struts.xml的默认配置
该文件包含唯一的一个根元素<struts>,我们可以在该元素中添加子标签,来实现自己的配置,主要有如下7个配置功能
属性第一元素<constant>
该标签用来定义一个属性
导入字文件元素<include>
该标签用来导入一个子文件
包定义元素<package>
定义了一组<action>和拦截器元素,可以定义多个<action>元素,name表示表的名字,extend属性表示继承自struts-default.xml中所定义的包的名字,继承的意义是,被继承的包中的拦截器都可以在起继承的包中使用
Action映射配置元素<action>
Action mapping是框架中的基本工作单元,框架通过对请求路径进行映射来决定由哪个action来处理请求。Action mappings能指定一系列的Result、异常处理器及拦截器,<action>元素的所有属性中只有name属性是必需的,其他属性都是可选的。
按照作用个不同,可以配置5种类型的请求映射
(1)配置直接转发的请求
只有一个name属性来表示要匹配的映射地址,并在子元素<result>中配置要转发的页面
(2)指定处理的Action类
除了要使用name属性来匹配映射地址外,还可以使用class属性来指定要使用的Action类名,这样默认哟个execute()方法处理
(3)指定Action的处理方法
如果需要多个处理函数,可以再<action>中添加method属性,指定要调用的函数名,如果不指定method,则默认execute()处理
(4)通过请求地址来指定执行的函数
尝试了,但实现不了!
(5)配置通配符映射
Restl配置元素<result>
<result>有两个属性:name和type。他们都是可选的,name的默认值是success,type的属性是dispathcer。ActionSupport定义了几个标准的ResultToken
配置全局映射元素<global-results>
定义在<action>元素中的<result>我们可以称为局部<result>,除此之外,还可以定义全局<result>,这些全局<result>会被多个<action>共享,框架首先会选择嵌套在<aciton>中的<result>,如果没有匹配的就去全局<result>中寻找。全局的<result>列表定义在<gloal-results>内,<gloal-results>放在<package>中,如下所示:
配置拦截器<insterceptors>
通过拦截器,我们可以在Action中的方法执行之前先执行一些事先定义好的方法,也可以在Action中的方法结束之后执行一些我们定义好的方法,在开发过程中,拦截器将是一个强有力的工具。拦截器有很多功能,如下所示
》校验:检查输入是否正确
》属性封装:将输入输出和转化为对象的属性
》日志:记录关于每个Action的详细信息
》切面:记录Action的吞吐量
我们可以将多个拦截器链接在一起形成一个拦截器堆栈。
拦截器是以java类实现的,所以每一个拦截器都有一个唯一的类名为了让拦截器的参考更容易,我们可以在框架中为每个拦截器注册一个更简单的名字
在定义拦截器的时候,单个的拦截器和拦截器栈可以以任意的顺序混合在一起,Struts2框架会安装拦截器在栈里面的顺序调用它们。大多数程序都会定义一个默认的拦截器栈,默认的拦截器栈会作用与<package>中的没一个<action>上
struts.xml的默认配置
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> </struts>
该文件包含唯一的一个根元素<struts>,我们可以在该元素中添加子标签,来实现自己的配置,主要有如下7个配置功能
属性第一元素<constant>
该标签用来定义一个属性
导入字文件元素<include>
该标签用来导入一个子文件
包定义元素<package>
定义了一组<action>和拦截器元素,可以定义多个<action>元素,name表示表的名字,extend属性表示继承自struts-default.xml中所定义的包的名字,继承的意义是,被继承的包中的拦截器都可以在起继承的包中使用
Action映射配置元素<action>
Action mapping是框架中的基本工作单元,框架通过对请求路径进行映射来决定由哪个action来处理请求。Action mappings能指定一系列的Result、异常处理器及拦截器,<action>元素的所有属性中只有name属性是必需的,其他属性都是可选的。
按照作用个不同,可以配置5种类型的请求映射
(1)配置直接转发的请求
只有一个name属性来表示要匹配的映射地址,并在子元素<result>中配置要转发的页面
<action name="index"> <result>login.jsp</result> </action>
(2)指定处理的Action类
除了要使用name属性来匹配映射地址外,还可以使用class属性来指定要使用的Action类名,这样默认哟个execute()方法处理
<action name="showmessage" class="action.LoginAction"> <result name="success">/lymessage.jsp</result> <result name="error">/error.jsp</result> </action>
(3)指定Action的处理方法
如果需要多个处理函数,可以再<action>中添加method属性,指定要调用的函数名,如果不指定method,则默认execute()处理
<action name="showmessage" class="action.LoginAction" method="showMessage"> <result name="success">/lymessage.jsp</result> </action>
(4)通过请求地址来指定执行的函数
尝试了,但实现不了!
(5)配置通配符映射
<action name="*Action" class="Action.LoginAction" method="{1}"> <result name="success">/welcome.jsp</result> <result name="error">/error.jsp</result> <result name="tongpeifu">/{1}.jsp</result> </action>
Restl配置元素<result>
<result>有两个属性:name和type。他们都是可选的,name的默认值是success,type的属性是dispathcer。ActionSupport定义了几个标准的ResultToken
String SUCCESS = "success"; String NONE = "none"; String ERROR = "error"; String INPUT = "input"; String LOGIN = "login";
配置全局映射元素<global-results>
定义在<action>元素中的<result>我们可以称为局部<result>,除此之外,还可以定义全局<result>,这些全局<result>会被多个<action>共享,框架首先会选择嵌套在<aciton>中的<result>,如果没有匹配的就去全局<result>中寻找。全局的<result>列表定义在<gloal-results>内,<gloal-results>放在<package>中,如下所示:
<global-results> <result name="success">/welcom.jsp</result> <result name="error">/error.jsp</result> <result name="input">/input.jsp</result> </global-results>
配置拦截器<insterceptors>
通过拦截器,我们可以在Action中的方法执行之前先执行一些事先定义好的方法,也可以在Action中的方法结束之后执行一些我们定义好的方法,在开发过程中,拦截器将是一个强有力的工具。拦截器有很多功能,如下所示
》校验:检查输入是否正确
》属性封装:将输入输出和转化为对象的属性
》日志:记录关于每个Action的详细信息
》切面:记录Action的吞吐量
我们可以将多个拦截器链接在一起形成一个拦截器堆栈。
拦截器是以java类实现的,所以每一个拦截器都有一个唯一的类名为了让拦截器的参考更容易,我们可以在框架中为每个拦截器注册一个更简单的名字
<interceptors> <interceptor name="myinter" class="server.MyInterceptor" /> <interceptor-stack name="mystack"> <interceptor-ref name="defaultStack"></interceptor-ref> <interceptor-ref name="myinter"></interceptor-ref> </interceptor-stack> </interceptors>
在定义拦截器的时候,单个的拦截器和拦截器栈可以以任意的顺序混合在一起,Struts2框架会安装拦截器在栈里面的顺序调用它们。大多数程序都会定义一个默认的拦截器栈,默认的拦截器栈会作用与<package>中的没一个<action>上
<default-interceptor-ref name="defaultStack"/>
相关文章推荐
- Struts的核心是struts-config.xml配置文件,本文详细描述了所有的Struts组件。
- tomcat核心组件及server.xml配置讲解
- tomcat核心组件及server.xml配置讲解
- tomcat核心组件及server.xml配置讲解
- tomcat核心组件及server.xml配置讲解
- Struts2笔记1:--Struts2原理、优点、编程流程、6大配置文件以及核心配置文件struts.xml
- struts的核心组件—ActionServlet、RequestForward、Action
- tomcat核心组件及server.xml配置讲解
- tomcat核心组件及server.xml配置讲解
- Java Web编程的主要组件技术——Struts核心组件
- tomcat核心组件及server.xml配置讲解
- tomcat核心组件及server.xml配置讲解
- struts 1.3 核心组件(一)
- 使用xmlConn组件和struts来实现数据的异步交互
- Struts 2框架有两个核心配置文件:struts.xml和struts.properties
- tomcat核心组件及server.xml配置讲解
- tomcat核心组件及server.xml配置讲解
- tomcat核心组件及server.xml配置讲解
- Struts 2核心配置文件struts.properties和struts.xml
- Struts的核心struts-config.xml配置文件