布局
<struts>
<package>
<!-- 全局视图 -->
<global-results>
<result name="error">XXX</result>
<result name="login">XXX</result>
</global-results>
<!-- 全局错误处理 -->
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"/>
</global-exception-mappings>
<!--action-->
<action>
<result>XXX</reeult>
<result>XXX</reeult>
<action>
</package>
</struts>
package标签
- name=”XXX”:包的名字,主要用于被继承时候使用
- namspace=”/XXX”:命名空间,访问网址,方式为: 域名/上下文路径/命名空间/action名
- extends=”strusts-default”:继承父类,所有package需要继承strusts-default(一堆拦截器和属性)
- abstract=”true/false“:是否只能被继承;strusts-default就是true.自己写的拦截器package,也要true.
<package name="XXX" namespace="/" extends="struts-default" abstract="false">
</package>
action标签
为package的子元素,用于配置Action类
- name=”XX”:action名:方式为: 域名/上下文路径/命名空间/action名
- class=”XX”:Action类的全限名
- method=”XX”:类中调用的方法名;不写默认为execute
- *号和{1}:action的name中的第一个*号,等价于action其他位置的{1}
<action name="*_*" class="{1}Action" method="{2}">
<result name="success" type="redirectAction">{1}</result>
</action>
此时访问的action为 Employee_list:
{1}=Employee,{2}=list;处理请求的方法为EmployeeAction中的list方法,
执行方法,若返回success后,会重定向去访问{1},即访问Employee_execute
result标签
action的子标签,工具Action类的方法返回值,来选择响应的界面
<result name="Action类的返回值" type="跳转方式">WEB-INF/xxx.jsp</result>
<!-- 全局视图 与action平级-->
<global-results>
<result name="error">XXX</result>
<result name="login">XXX</result>
</global-results>
- name:逻辑视图,默认为success
- type:跳转方式 默认为dispatcher
- dispatcher:请求转发到jsp
- chain:请求转发到Action类
- redirect:重定向到jsp(少用)
- redirecAction:重定向到 Action类
- stream: 用于下载
<!--chain/redirecAction到自己包内的Action-->
<result name="XXX" type="redirectAction">Action名</result>
<!--chain/redirecAction到另外包内的Action-->
<result name="XXX" type="redirectAction">
<param name="actionName">action名</param>
<param name="namespace">包的命名空间</param>
</result>