您的位置:首页 > 编程语言 > Java开发

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

2009-10-23 19:54 239 查看
一、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/> 专门取错误消息的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: