<! DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd" > < struts > <!-- include节点是struts2中组件化的方式 可以将每个功能模块独立到一个xml配置文件中 然后用include节点引用 --> < include file ="struts-default.xml" ></ include > <!-- package提供了将多个Action组织为一个模块的方式 package的名字必须是唯一的 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 ="com.kay.struts2" extends ="struts-default" namespace ="/test" > < 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名称 class: 对应的类的路径 method: 调用Action中的方法名 --> < action name ="hello" class ="com.kay.struts2.Action.LoginAction" > <!-- 引用拦截器 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 > </ struts >