Struts核心知识部分小结(2)

本文深入介绍了Struts框架的核心组件ActionForm的功能与使用方法,包括其生命周期、类型转换、表单验证及数据重置等特性,并探讨了DynaActionForm的灵活配置方式。

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

一、Struts的视图组件:
 1. ActionForm 表单Bean对象
 2. struts的标签库

二、ActionForm:
 1.用途:在视图层和控制层之间传递表单数据。
         在Action类中可以从ActionForm对象中取出用户提交的表单数据。
         也可以把要返回给视图组件要显示的数据放入ActionForm中(一般都直接放置到request中).
 2.配置:在struts的配置文件中,用<form-bean>标记来标记,它的常用属性:
      name:指定此ActionForm的逻辑名。要唯一且必须。
      type:指定ActionForm的全限定名。必须.
 3.使用配置:用<action>标记来使用。
      name: 指定本Action要使用到的ActionForm逻辑名。
      scope: 指定对应的ActionForm的保存范围。session | request
      attribute: 指定存放的名。
      validate:是否要调用ActionForm中的validate()方法来对数据进行验证。true
      input: 指定验证失败时要跳转到的路径。

三、ActionForm的生命周期:
  1.存放在request中:
      1) 当Struts框架截获客户的请求时,它就创建对应的ActionForm实例
      2) 调用此ActionForm实例的reset()方法,(你可以在这个方法中对属性进行重置值)。
      3) 使用请求对象中的数据填充ActionForm中的属性值。(只针对ActionForm中的基本类型和java.sql.Date)
      4) 如果配置了要验证,调用此ActionForm实例的validate()方法。(你可以在这个方法中对表单数据进行验证)。
      5) 被传递到Action实例的execute()方法中,供使用。
      6) 当响应结束时,此ActionForm实例被销毁。
  2.存放在session中:
      1) 当Struts框架截获客户的请求时,它就先查找对应的ActionForm实例。如果不存在才创建。
      2) 调用此ActionForm实例的reset()方法。
      3) 使用请求对象中的数据填充ActionForm中的属性值。
      4) 如果配置了要验证,调用此ActionForm实例的validate()方法。
      5) 被传递到Action实例中,供使用。
      6) 当响应结束时,此实例没有被销毁,仍然存放在session中。

四、ActionForm作为类型转换器
  客户端浏览器提交的请求数据全部是字符串类型的,但是ActionForm会使用Struts默认注册的类型转换器把这些请求数据转换成相应的基本数据类型(包装类),但是不能转换成其它对象类型。
  要注意:在ActionForm中的属性只能定义成基本数据类型(或它们对应的包装类)、java.sql.Date和字符串类型,不能出现其它的对象类型。
  扩展:自定义类型转换器

五、ActionForm的表单验证功能:只是对数据进行格式验证。不是进行逻辑验证。

六、ActionForm的表单数据重置功能:当ActionForm存放在session范围中时(想重用),一定要记得在reset()方法中对所有属性进行重置值。对于ActionForm存放在request中时没有意义。

七、org.apache.struts.action.DynaActionForm:动态ActionForm。
   1. 它只需要在struts文件中配置上所有的属性就可能充当ActionForm使用了。
   2. 取动态ActionForm中的属性值: (配置的类型)daForm.get("属性名");
   3. 使用动态ActionForm时,表单验证一般要采用Validate验证框架。

八、  ActionMessage:代表一条信息。  new ActionMessage("信息内容", false);
    ActionMessages:信息的容器。  actionMessages.add("key", actionMessage);
    ActionError:代表一条错误信息。struts1.2.0以后不推荐使用了。
    ActionErrors: 错误信息的容器。actionErrors.add("key", actionMessage);

    在JSP页面中可以使用struts的标签来取:
    <html:messages id="msg">${msg}</html:messages>
    <html:messages id="msg" message="true">${msg}</html:messages>
    <html:errors/> 专门取错误消息的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值