一dispatchAction
1.action处理用户请求,并且只能处理一个业务,导致控制器的数量庞大。
2.dispatchAction可以处理多个业务,它是Action的子类l。
二创建dispatchAction
1 a类的方法一个public类extends dispatchAction
b定义处理请求的方法 方法签名与Action中execute签名一致但方法名不能execute
2 配置方法在配置Action中加 parameter=“key的值”
3 请求格式 **。do?key=方法名
Action与dispatchAction关系
1 Action中定义了子类所有行为的空方法execute()
2 dispatchAction中execute方法是根据parameter的值来调动相应的方法
若子类dispatchAction用execute命名则覆盖了dispatchAction
三 使用转发请求的action只需在structs-config。xml中的配置
写:<action path="行动方案名" forward=“地址”/>
四 actionForm与实体类的区别
1.actionForm是structs提供的视图组件,主要职责是将数据从控制器发到视图 或者 从视图发到控制器使用边界止步于控制器,不能出现在业务层
2 实体类仅是数据的载体可以跨不同的逻辑层实现数据搬运
3 当页面数据来自于一张表时,actionform于实体类的代码绝大数相同,将实体类放到actionForm中属性
(可以避免实体类中属性set于get)
五dynaActionForm 实现动态表单bean
1 作用 用于简化代码 (不用写actionForm的子类)
2 创建 在stucts-config。xml中配置DynaActionform
格式 <from-bean name="内部明" type="org.apache.structs.action.DynaActionForm" >
<form-property name="属性名" type="属性类型">
</form-bean>
3 在action中区数据: 实体类 类名 = (实体类型)(((DynaActionForm)form).get("属性名"));