Struts2开发(一、基础配置)
《Struts2权威指南》导读101-87=14.
1.Bean配置
Struts2是高度可扩展性框架,框架内的大部分核心类组件都是用IOC进行控制的。
大多数情况下,不需要我们去修改Struts2的核心类。Bean配置需要深入了解Struts2框架的源代码,一般只是作为了解。
Struts2核心组件的配置都在D:\j2ee\struts2\struts-2.3.4.1\lib\struts2-core-2.3.4.1.jar\struts-default.xml中。
2.常量配置
在struts.properties中配置是为了保证webwork的向后兼容性。
常量可以在如下配置文件中进行配置,按照以下顺序搜索配置信息,下面的覆盖上面的:
struts-default.xml
struts-plugin.xml
struts.xml一般在此文件或此文件的扩展文件中配置
struts.properties
web.xml
不管是哪个文件中,都必须指定name、value两个属性。
struts.xml中配置:
<struts> <constant name="struts.custom.i18n.resources" value="mess" /> </struts>
3.包配置
Struts2使用包来管理核心组件的Action、拦截器等。
配置package时,必须指定name属性;还可以指定可选的extends属性,继承所选包的拦截器、拦截器栈、Action等配置;也可以指定可选的abstract属性,指定后定义的包为抽象包,不能定义Action配置。
Struts2的配置文件默认是从上往下加载的,定义的extends的包必须在子包之前。
4.命名空间配置
同一个命名空间里不能有同名的Action;
为包指定namespace属性时,请求的URL为http://localhost:8080/namespace/book/GetBooks.Action;
如果包没有指定namespace属性,则默认的命名空间总是"";
namespace="/",根命名空间。
如果请求的URL为/barspace/Bar.Action,则系统首先会在/barspace命名空间中寻找Bar.Action,如果找不到,会在默认命名空间中查找。
如果请求的URL为/Bar.Action,则系统首先会在/根命名空间中寻找Bar.Action,如果找不到,会在默认命名空间中查找。
5.包含配置
包含配置体现的是分而治之的概念,也就是把一个配置文件分为多个配置文件,让文件变得更加清晰有序。
<include file="struts-busz1.xml" />
<include file="struts-busz2.xml" />
<include file="struts-busz3.xml" />
这些文件统一放在WEB-INF/classes/根目录下。
6.拦截器配置
拦截器允许在Action处理结束之前、处理结束之后插入开发者自定义的代码。
拦截器可以做如下操作:权限控制、日志跟踪、性能跟踪。。。
多个拦截器可以组成一个拦截器栈(相对于Struts2而言,拦截器栈也是拦截器)。
<!-- 权限拦截器 --> <inceptor name="authority" class="lee.AuthoryInceptor" /> <!-- 日志拦截器 --> <inceptor name="log" class="lee.LogInceptor" /> <!-- 定义一个拦截器栈 --> <inceptor-stack name="authorityandlog"> <!-- 定义拦截器里包含authority拦截器 --> <inceptor-ref name="authority" /> <inceptor-ref name="log" /> </inceptor-stack> </inceptors> <action name="login" class="com.chenw.action.LoginAction"> <result name="success">/welcome.jsp</result> <result name="error">/error.jsp</result> <!-- 引用拦截器 --> <interceptor-ref name="authorityandlog" /> </action>