标签:
新手可以看看,高手可以跳过……
最近在学习struts2这个框架,自己也动手写过一些DTD文件,所以很好struts2这个DTD文件是怎么写的,接下来就一个一个的分析
根元素是struts,然后又4个子节点 ,分别是package,bean,include,constant
----------------------------------------------------package-----------------------------------------------------
看下package的属性:
name:可以随便取,可以被其他package继承,字符串类型。这个是必填的。注意后面的#REQUIRED。
extends:按照我的实验和google的说法,这个很重要,继承struts-defalut.xml的一些东西,而在struts-default.xml中包含了基础的拦截器配置信息。继承了这个,我们就可以直接使用里面的拦截器啦。
namespace:命名空间,struts2以命名空间来管理action,同一个命名空间里面不能有相同名的action。有点类似Java包。
package下面的子元素有很多,这里我只简略的说几个:
action这个子元素,配置action就是让Struts容器知道action的存在,并且能调用该action来处理用户请求,应该说action是struts2的基本程序单位:
原理:在这里我们要理解action只是一个控制器,按照MVC的架构他属于C,所以需要配置M与V的映射给ACTION。
我们知道action是package的子元素,所以struts是通过包来组织action的。很类似于我们平时写Java程序,因为我们的类也是通过包来组织的。
先看下action的定义:
action的重要属性和子元素:
属性name :必填,而且在同一个包下唯一,字符串
属性class:指定action类
子元素result,:
这个元素非常简单,只有2个属性,分别是name和type
type配置了转发类型,常用的类型有dispatcher(默认),redirect,redirectAction,plainText。分别是转发、重定向、防止重复提交的重定向、显示原始文件内容,当我们需要显示源码时可以使用。
ps:在package中有个子元素叫做global-results,这个是定义全局result的。当我们平凡使用一个相同的视图时,可以考虑使用该元素。
----------------------------------------------------include--------------------------------------------------------
接下来是include:
这个元素虽然只有一个file属性,但是我想以我们现在的项目规模以及为了以后的维护和扩展,这个一定要用。
一旦package、action、interceptors等配置比较多时,都放到一个struts.xml文件不太容易维护。因此,就需要将struts.xml文件分成多个配置文件,然后在struts.xml文件中使用<include>标签引用这些配置文件。
----------------------------------------------------bean--------------------------------------------------------
这个目前没有用到,等以后更清楚了再来修改,就不误导大家了!
----------------------------------------------------constant--------------------------------------------------------
constant元素:
配置Struts2的常量属性,struts容器会读取这些配置来改变struts的运行。具体如下(Copy自网上):
标签:
原文地址:http://www.cnblogs.com/zfy-220/p/4269369.html