ActionMapping是用来扩展Action的功能的
当Http请求到来 ActionServlet通过path属性来 选择对应的ActionMapping对象 所有对象都放在一个ActionMapping的集合中
ActionServlet都是通过ActionMapping来决定下一步去哪里:
1 控制转向令一个资源
2 效验一个ActionForm
3 转交给Action 有时在返回时还要查找ActionForm
属性:
1 path
选择该ActionMapping的URI
2 forward
上下文相关的某个资源的路径 一定要有forward include type中的一个
3 include
上下文相关的某个资源的路径 应该通过include服务于这个请求
4 type
该Action类的全称
5 className
实例化该mapping时使用的类 ActionMapping的子类 如果有一定是ActionMapping的子类
6 name
ActionForm的名字 不是类名 是逻辑名
7 roles
可以访问该Mapping的角色
8 scope
requeset or session
9 validate
true or false 是否调用 validate方法
10 input
验证失效时返回的地址 html地址 jsp页面 URI或者其他Mapping对象
11 parameter
通过配置参数来向被ActionMapping对象选中的的Action对象传递额外的信息
可以时URI 也可以是方法名
12 attribute
一个定义在request或者session范围内的属性名 通过该名可以访问Form bean
13 prefix
用来匹配Http请求的参数名 和form bean的属性名
14 suffix
如果指定该值 则在填充ActionForm时通过它来和Http请求中的参数进行匹配
15 unknow
当该属性为真 该Mapping就应该被配置成为应用程序默认的mapping 一个应用程序仅仅只有一个可以通过unknown为真来成为默认的Mapping
16 forwards
mapping可以使用的一系列ActionMapping对象
17 exceptions
mapping可以使用的一系列ExceptionHander对象
< action
path ="/welcome"
type ="org.apache.struts.actions.ForwardAction"
parameter ="/pages/welcome.jsp" />
< action
path ="/logon"
type ="org.apache.struts.actions.ForwardAction"
parameter ="/pages/logon.jsp" />
< action
path ="/logonSubmit"
type ="ergal.LogonAction"
name ="logonForm"
scope ="request"
validate ="true"
input ="/pages/logon.jsp" >
< forward
name ="success"
path ="/pages/welcome.jsp" />
</ action >
< action
path ="/logoff"
type ="ergal.LogoffAction" >
< forward
name ="success"
path ="/pages/welcome.jsp" />
</ action >
</ action-mappings >