3.struts2加载资源文件和struts.xml基本元素
配置文件加载顺序:
web.xml
|
default.properties 资源文件
|
struts-defalut.xml 配置文件
|
struts-plugin.xml 插件文件
|
struts.xml 用户配置
<struts> <package name="xt11" namespace="/xt" extends="struts-default"> <action name="test" class="cn.xt.work.Test"> <param name="name">jack</param> <result name="success">/jsp/success.jsp</result> </action> </package> <package name="primer" namespace="/primer" extends="struts-default"> <action name="helloWorldAction" class="cn.xt.primer.HelloWorldAction" method="add"> <result name="success" type="dispatcher">/primer/success.jsp</result> <result name="ok" type="redirect">/index.jsp</result> </action> </package> </struts> //struts 根节点 // |-package 在一个配置文件中,可以包含1个或多个package节点。 // | 1)属性name为package起的名子标识了该package(用于继承), name属性不可以相同 // | 2)属性namespace为action的命名空间,如:namespace="/xt" 则url映射 http://localhost:8080/Struts2/xt/test // | 默认值为namespace="/" 。namespace属性决定了如何访问你的Action类。/xt-- /xt/test.action // | 3)属性extends指明此包所继承的其他包;Struts-default是核心配置文件 // | // |-interceptors 加入拦截器 // | |----interceptor // | |----interceptor-stack -----引入其它拦截器 // | | ....... 拦截器 // | </interceptor-stack> // |-action 节点定义某个类所对应的访URL // | 1)属性name为url映射 ,他对应class属性,将一个访问映射到一个实际的类;如 /xt/test.action name="test" // | 2)属性class 实际的action类全名; 如 class="cn.xt.primer.HelloWorldAction" // | 3)属性method 可指定执行action类中的那个方法,默认为execute(); // | // | // |--interceptor-ref 引入拦截器 // | // | // | // |--exception-mapping // | // |--allowed-methods 允许调用的方法 // | // |--param 节点为 url 参数param 给参数name 设置初始值(防止用户不传值是为null),当用户传值时就覆盖掉这个初始值 // |--result 节点在action的内部,定义Action返回后转发到哪一个页面。Result有一个name属性,它的默认值为success。 // 1)属性name为 action类中执行方法的返回结果 默认为"success" // 2)属性type为指定对结果页的处理方式 ,默认为type="dispatcher" 即:转发 //dispatcher为转发 //redirect 重定向 //redirectAction把响应重定向到另一个 Action