Struts 框架的核心配置文件就是 struts.xml 配置文件,该文件主要负责管理 Struts 2 框架的业务控制器 Action。
在默认情况下,Struts 2 框架将自动加载放在 WEB-INF/classes 路径下的 struts.xml文件。所以在第一篇文章中,新建struts.xml时,要求一定要建立在src目录下,该目录下的内容在开发中会被复制到 WEB-INF/classes 目录下(.java文件不会被复制过去,编译好后的.class文件直接被创建在那里面, myeclipse下的web project是这样的) .
struts.xml 的根元素是struts
<?xml version="1.0" encoding="GBK"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"struts-2.0.dtd">
<!-- 根元素是Struts -->
<struts>
</struts>
其中最重要的元素是package,是根元素struts的子元素
package是action元素的父元素
Java代码
<struts>
<package>
<action name="" class="">
</action>
</package>
</struts>
<!--
该元素是struts的子元素
该元素只有一个属性 file,即需要倒入的外部配置文件
下面这个写法基本就是其标准形式了
-->
<!-- ******************************************** -->
<include file="hack/conf/strutsconf.xml" />
<!-- ******************************************** -->
</struts>
使用 include 的好处: 当我们开发一个项目,配置文件肯定会写一大堆,如果写在一个配置文件里一定冗长,查看和修
改都不方便,所以使用include把配置文件分开来便于查找和修改,完全有理由让struts.xml仅仅是作为一个目录来使用
,至于其它配置文件的分配,可以根据模块也可以根据功能来划分
package,先给出package的定义
package是把actions,results,result types,interceptors和stacks分组成逻辑单元的一种方式
,以分享一些共同设置,包跟对象一样可以扩展,也可以被"子"包覆盖部分属性
从以上定义我们可以看出package不仅是作为逻辑分隔,而且还能具有继承的特性
name属性仅仅是个代号(id),我们可以随边取,只要不冲突(不重复),而extends代表继承其它的包
里面填参数是其它包的name属性
namespace代表名称空间,namespace的作用是控制相应package下的action的url地址,有点象java的classpath
abstract,这个和我们写java的abstract类一样,就是让人家来继承的 只有name是必需的
extends也是必需的,因为我们需要从struts2默认载入的struts-default.xml
文件的struts-default包中继承一些东西,有兴趣可以解压struts2-core-2.0.9.jar找到struts-defautl.xml查看内容
<package name="lee" namespace="/admin" extends="struts-default">
action,action是struts2的基础"工作单元",一个action一般就是一个请求(或点击按钮或提 交表单),action元素有两部分,一个友好的名字(URL相关,如Login.action)和一个负责"处理"的类
<!--
name表示*.action前面那部分这里即是表示Conf.action
class表示使用哪个类来处理此请求
method 是可选属性,表示使用哪个方法来处理, 如果缺此项默认调用类中的execute()方法 也可以有其他方法,要调用的方法必需符合以下三个条件 1 是public 2 返回String 3 没有参数
-->
<action name="Conf" class="hack.conf.HelloAction" method="方法名">
</action>
result,result是Action执行后返回的字符串 。
<!-- 基本形式 -->
<result name="success" type="dispatcher">
<param name="location">/conf/welcome.jsp</param>
</result>
<!--
如果location是唯一的参数,象上面这个,还可以改写为下面形式 如果result标签对中间没有 param 标签,就把result标签对中间 的文本作为location
-->
<result name="success" type="dispatcher">/conf/welcome.jsp</result>
<!-- 如果type是"dispatcher",类似于servlet标准中ServletDispatcher的forward-->
<result name="success">/conf/welcome.jsp</result>
<!-- 如果name是"success",还可以继续简化 -->
<result>/conf/welcome.jsp</result>
在这种情况下,我们就可以使用全局result,下面我们来看看其定义
Struts2 允许你为所有Action配置定义一些默认的result映射,它会自动的被这个包中的所有Action以及
扩展包继承,换句话说,如果你在多个Action中使用相同的result映射,你可以把它配置成全局的result
这里做个比喻,package就相当于java的类(class),全局result就相当于类中的成员变量,result就相当于成员方法,所有成员方法都能使用成员变量类可以继承其它类
<!-- ******************************************** -->
<global-results>
<result name="error">/conf/error.jsp</result>
</global-results>
<!-- ******************************************** -->
分享到:
相关推荐
struts-2.0.dtdstruts.xmlstruts-2.0.dtd
struts2.0中struts.xml配置文件详解
cxf-rt-bindings-xml-2.7.4.jar cxf-rt-core-2.7.4.jar cxf-rt-databinding-jaxb-2.7.4.jar cxf-rt-frontend-jaxws-2.7.4.jar cxf-rt-frontend-simple-2.7.4.jar cxf-rt-transports-http-2.7.4.jar cxf-rt-ws-addr-...
以下是jar包列表 activation-1.1.jar activiti-engine-5.10.jar activiti-spring-5.10.jar antlr-2.7.7.jar aopalliance-1.0.jar aopalliance.jar asm-3.1.jar aspectjrt.jar ...xml-apis-1.0.b2.jar
1 spring的相关包,先添加struts2.0的支持时标记的包; 2 struts2的相关包;以struts2-core-2.1.6版本为准; 注:struts2-core-2.1.8有较大变化需要注意替换相关包,注意尾号尽量不要是单号 例子:xwork-2.1.2....
JasperReport Struts2 web 整合所需完整jar ant-1.7.1.jar antlr-2.7.5.jar asm.jar bsh-2.0b4.jar cglib-2.1.jar commons-beanutils-1.7.0.jar commons-beanutils-1.7.jar ...xml-apis.jar xwork-2.0.4.jar
JSP文件--> 具有Struts2.0支持的增、删、改、查页面及自定义查询、自动分页等操作 Action--> 业务Action.java和导出Excel的Action等 VO --> bean.java及 bean.hbm.xml配置文件 Service --> Service接口定义类 ...
【用于JAVA开发中的 Struts2.0 + Spring2.0 + Hibernate3.2 框架整合程序开发】 强大的支撑功能,堪称JAVA SSH编程的利器,你绝对值得拥有! 自动生成以下所有内容(即:完整的Java SSH支持的工程) Sturts2.0配置-->...
【用于JAVA开发中的 Struts2.0 + Spring2.0 + Hibernate3.2 框架整合程序开发】 强大的支撑功能,堪称JAVA SSH编程的利器,你绝对值得拥有! 自动生成以下所有内容(即:完整的Java SSH支持的工程) Sturts2.0配置-->...
用于JAVA开发中的 Struts2.0 + Spring2.0 + Hibernate3.2 框架整合程序开发】 强大的支撑功能,堪称JAVA SSH编程的利器,你绝对值得拥有! 自动生成以下所有内容(即:完整的Java SSH支持的工程) Sturts2.0配置--> ...
struts2.0扫盲文档2加入struts.xml配置文件(自己建) <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" ...
Struts2.0_Hibernate3_spring2.0 部署Web应用请按如下步骤进行: 1. 进入reg_login路径下,将mysql.sql脚本中的语句导入MySQL数据库。 2. 修改reg_login\WEB-INF路径下的applicationContext.xml文件,将其中的...
结业时所做。。参考用,虽然不咋地,但是有些技能实现的方法可以借鉴。。。上传的lib包中需要加入以下文件,因为容量过大,没有上传,请见谅! antlr-2.7.6.jar antlr-2.7.6...xalan.jar xerces-2.6.2.jar xml-apis.jar
Maven2_Struts2.0打包实例 环境:Eclipse3.3.2 jdk 1.5 tomcat:5.5.6 apache-maven-2.0.9 开发步骤: * 安装Eclipse对maven的插件 * 先用命令建一个Web项目:mvn archetype:create -DgroupId=...
struts2.0的 配置视频,视频将教会你如何配struts2.0,从struts2。dtd文件 到web.xml struts.xml的配置。
shtuts2.0配置模板struts.xml详细说明了各个标签的使用说明
struts2.0 要用到的 jar 包 commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,commons-logging-1.1.jar,freemarker-2.3.13.jar,ognl-2.6.11.jar,xwork-2.1.2.jar,struts2-core-2.1.6.jar 7个包 copy到WebRoot/WEB...
拦截器 验证器 struts.xml配置文档详解 本人在该实例中遇到的最大问题及解决方案: "struts2.0做文件上传关于所加载的错误包造成的问题心得" 1:commons-io-1.4.jar 做上传时,如果用的该包是1.0的就经常出经上传不...
绝对的好东西 struts2.0中struts.xml配置文件详解