Actionform类

本文介绍了Struts框架中ActionForm的作用及其实现过程。详细讲述了如何为表单创建ActionFormbean,以及框架如何在调用Action类之前进行bean实例化。此外,还解释了如何通过覆盖validate()方法来实现表单验证。

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

假设用户在应用程序中为每个表单都创建了一个Actionform bean,对于每个在struts-config.xml文件中定义的bean,框架在调用Action类的execute()方法之前会进行以下操作:

在相关联的关键字下,它检查用于适当类的bean实例的用户会话(或请求),如果在会话(或请求)中没有可用的bean,它就会自动创建一个新的bean并添加到用户的会话(或请求)中。至于是在会话还是请求取决于struts-config.xml Action scope属性。在创建Actionform的时候,系统会将请求中的值,进行相应的类型转换以后对Actionform进行初始化。对于请求中每个与bean属性名称对应的参数,Action调用相应的设置方法。当Action execute()被调用时,最新的Actionform bean传送给它,参数值就可以立即使用了。

Actionform类提供了另一种处理错误的手段,提供两个方法:

Public ActionErrors validate(ActionMappin mapping, ServletRequest request)

Public ActionErrors validate(ActionMappin mapping, HttpServletRequest request)

你应该在自己的bean里覆盖validate()方法,并在配置文件里设置<action>元素的validatetrueActionServlet调用Action类前,它会调用validate(),如果返回的ActionErrors不是null,则Actinform会根据错误关键字将ActionErrors存储在请求属性列表中。如果返回的不是null,而且长度大于0,则根据错误关键字将实例存储在请求的属性列表中,然后ActionServlet将响应转发到配置文件<action>元素的input属性所指向的目标。

如果需要执行特定的数据有效性检查,最好在Action类中进行这个操作,而不是在Actionform类中进行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值