sturts1中的七种Form小结

ActionForm生命周期
[img]http://daweiangel.iteye.com/upload/attachment/56042/ee3848d1-76b4-39c4-bf12-4d4f82f8a14d.jpg[/img]
ActionForm Bean从应用和配置的角度分为两类
动态ActionForm和静态ActionForm都是成对出现的。作用一样,只是实现不一样。
一.静态Form
由程序员手工编写Form
1.ActionForm
提交表单的字段名和form中的属性名一致。

2.ValidatorForm
用于验证框架的Form,在请求参数前,先使用验证框架验证。
在struts-config中对应的action标签的validate值为true。
3.ValidatorActionForm
二.动态Form
通过配置文件完成ActionForm配置

1.DynaActionForm

<form-bean name="loginForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="username" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
</form-bean>



DynaActionForm lForm = (DynaActionForm)form;
String username = (String) lForm.get("username");
String password = (String) lForm.get("password");
System.out.println("username:"+username+"->"+password);
return mapping.findForward("success");


无法提供默认的验证行为。
2.DynaValidatorForm
和ValidatorForm一样在使用验证框架时使用。配置和DynaActionForm类似。
type="org.apache.struts.validator.DynaValidatorForm"
3.DynaValidatorActionForm
ValidatorActionForm和DynaValidatorActionForm也都是在使用验证框架时使用,和DynaValidatorForm及ValidatorForm不同的是,在配置validtion.xml中<form name=path>
name使用的是action的path属性值。以此来区分不同请求的验证规则。


三.还有一种特殊的Form ,LazyValidatorForm。
<form-bean name="loginForm" type="org.apache.struts.validator.LazyValidatorForm"></form-bean>
我们没有配置form的属性。所以在jsp页面中必须使用struts标签。

<br>基本使用方式<br>Customer Name:<html:text property="username"></html:text>
<br>Customer Code:<html:text property="usercode"></html:text>
<br>
<br>自动封装Map<br>国家:<html:text property="address(nation)"></html:text>
<br>省份:<html:text property="address(state)"></html:text>
<br>城市:<html:text property="address(city)"></html:text>


这样就可以直接进行验证框架和action中的取值。

LazyValidatorForm lz = (LazyValidatorForm)form;
String username = (String)lz.get("username");
String usercode = (String)lz.get("usercode");
System.out.println("name---" + username + " usercode---" + usercode);

Map m = (Map)lz.get("address");
System.out.println(m.get("nation"));
System.out.println(m.get("state"));
System.out.println(m.get("city"));

return null;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值