ActionForm工作原理

本文详细阐述了ActionForm在Struts框架中的工作流程,包括Action映射检查、form-bean配置查找、实例重用机制、属性初始化及校验等关键步骤,有助于深入理解Struts表单处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚学过ActionForm的工作原理,为了想更好的理解,想整理出来,也方便大家参考,有一下步骤:

(1)检查Action的映射,确定Action中已经配置了对ActionForm的映射。

 

ExpandedBlockStart.gif代码
 <form-beans>
        
<form-bean name="loginForm" type="#"></form-bean>
    
</form-beans>
<!--两个name同名才行-->
       
<action-mappings>
           
<action path="#" type="#" name="loginForm" scope="request" validate="false">
               
<forward name="#" path="#"></forward>
           
</action>
       
</action-mappings>

 

(2)根据name,查找form-bean配置信息。

(3)检查Action的form bean的使用范围,确定在此范围下(request、session)是否已有Form bean实例。

(4)如当前范围下已存在form bean实例,而对当前请求来说,是同一类型的话,就重用它。

(5)否则重新构建一个form bean实例,并且调用构造方法,保持在一定的范围。

(6)form bean的reset()方法被调用

(7)调用对应的setter方法,对状态属性赋值

(8)如validatede属性设为true,那么就调用form bean的validatede()方法(服务器校验)

(9)如validatede()没有返回任何bug,控制器将Actionform作为参数,传给Action实例的execute()方法并执行

工作流程图如下:

说明:reset(),用于属性复位,控制给bean赋值之前用。

注:调用顺序:先调用构造方法->reset()->setter(),如果刷新页面,则会调用构造方法和reset方法

转载于:https://www.cnblogs.com/azai/archive/2010/03/15/1686694.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值