Strtus2核心文件
web.xml
任何MVC框架都需要与Web应用整合,这就不得不借助于web.xml文件,只有配置在web.xml文件中Servlet才会被应用加载。
通常,所有的MVC框架都需要Web应用加载一个核心控制器,对于Struts2框架而言,需要加载StrutsPrepareAndExecuteFilter,只要Web应用负责加载StrutsPrepareAndExecuteFilter,StrutsPrepareAndExecuteFilter将会加载Struts2框架。
strtus.xml
struts2的核心配置文件,在开发过程中利用率最高。
该文件主要负责管理应用中的Action映射,以及该Action包含的Result定义等。
包含:
1. 全局属性
2. 用户请求和响应Action之间的对应关系
3. Action可能用到的参数和返回结果
4. 各种拦截器的配置
<?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>
<!-- include节点是struts2中组件化的方式, 可以将每个功能模块独立到一个xml配置文件,
然后用include节点引用 -->
<include file="struts-default.xml"/>
<!-- package提供了将多个Action组织为一个模块的方式
packege的名字必须是唯一的 package可以扩展
当一个package扩展自另一个package时,该package会在本身配置
的基础上加入扩展的package的配置, 父package必须在子package前配置
name:package名称
extends:继承的父package名称
abstract:设置package的属性为抽象 抽象的package不能定义action 值true:false
namespace:定义package命名空间 该命名空间影响url的地址,例如词命名空间为/test
那么访问的地址为http://localhost:8080/struts2/test/xx.action -->
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<!-- 定义拦截器
name:拦截器名称
class:拦截器路径
-->
<interceptor name="timer" class="com.kay.timer"></interceptor>
<interceptor name="logger" class="com.kay.logger"></interceptor>
<!-- 定义拦截器栈 -->
<interceptor-stack name="mystack">
<interceptor-ref name="timer"></interceptor-ref>
<interceptor-ref name="logger"></interceptor-ref>
</interceptor-stack>
</interceptors>
<!-- 定义默认的拦截器 每个Action都会自动引用
如果Action中引用了其它的拦截器 默认的拦截器将无效 -->
<default-interceptor-ref name="mystack"></default-interceptor-ref>
<!-- 全局results配置 -->
<global-results>
<result name="input">/error.jsp</result>
</global-results>
<!-- Action配置一个Action可以被多次映射(只要action配置中的name不同)
name:action名称 http://localhost:8080/projectName/helloworld.action
class:对应的类路径
method:调用Action中的方法名
-->
<action name="helloworld" class="com.lijy.action.HelloAction">
<!-- 引用拦截器
name:拦截器名称或拦截器栈名称
-->
<interceptor-ref name="timer"></interceptor-ref>
<!-- 节点配置
name : result名称 和Action中返回的值相同
type : result类型 不写则选用superpackage的type struts-default.xml中默认的dispatcher
-->
<result name="success" type="dispatcher">/talk.jsp</result>
<!-- 参数设置
name : 对应Action中的get/set方法
-->
<param name="url">http://www.sina.com</param>
</action>
</package>
<constant name="struts.il8n,reload" value="true"></constant>
</struts>
struts.properties
struts2框架的全局属性文件,自动加载。
该文件包含很多key-value对。、
该文件完全可以配置在struts.xml文件中,使用constant元素。
#指定默认编码集,对于请求参数带有中文的情况,因该设置GBK或GB2312,默认值UTF-8
struts.i18n.encoding=GB2312
#是否每次HTTP请求到达时,都重新加载国际化资源文件,默认值false
struts.i18n.reload = true
#struts.xml改动后,是否重新加载该文件。在开发阶段建议将此属性设置为"true",提高开发效率,默认为false
struts.configuration.xml.reload=true
#是否使用Struts2的开发模式,可以获得更多报错信息,便于阅读,在开发阶段设置为true,默认为false
struts.devMode = true
#设置浏览器是否缓存静态页面,开发阶段设置为false,以获得服务器的最新响应,默认为true
struts.serve.static.browserCache=true
#制定后缀为.action形式的请求可被Struts2处理,可配置多个请求后缀,比如.do、.struts等,用逗号隔开
struts.action.extension=action,do,
#配置服务器运行时的端口号,一般情况下该属性不修改,如果端口号占用怎重新分配端口号.默认值80
struts.url.http.port = 80