struts1.2各种form详解

DynaActionForm
用配置代替Java类
<form-beans>
<form-bean name="" type="org.apache.struts.actionDynaActionForm">
<form-property name="userName" type="java.lang.String" initial="123"/>
<form-property name="age" type="java.lang.Integer" initial="0" />
<form-property name="address" type="com.xx.Address" />
<form-property name="interest" type="java.lang.String[]" initial="aa,bb" />
<form-property name="skill" type="java.util.ArrayList" />
</form-bean>
</form-beans>


// 属性不能是基本数据类型
// 取值方式不同, get("xxx"), getString("xx"),getMap()
// 用initial来部分替代reset

在相应的Action中
DynaActionForm loginForm = (DynaActionForm)form;
String userName = loginForm.getString("userName");
String password = loginForm.get("password").toString();


// List 填充的顺序不正确, 会有问题
不管是在一般的ActionForm里面还是DynaActonFrom里都会越界
所以要注意长度问题
setXXX(int index)
getXXX(int index)

在DynaActionForm只能用logicinterate和indexed="true" 来解决

终极解决方案: 用LazyValidateForm

DynaActionForm的好处:
减少代码量
坏处:
1,类型转换
2,reset方法和validate方法调不了了
3,不能继承
不够灵活,写的太多.
-----------------------
Map-backed ActionForm
一个Form走天涯
缺点:1,没有reset和validate方法
2,对结果集的支持不行
3,对页面有要求, 都要写成value(xxx)的形式.

---------------------------
LazyValidatorForm
三无产品:
1, 不需写Java类
2, 不需要配置属性
3, 对页面没有任何要求
4, 可以支持验证

DynaBean lazyForm = (DynaBean)form;
String userName = lazyForm.get("userName").toString();
Map friendMap = (Map)lazyForm.get("friend");
List skill = (List)lazyForm.get("skill");


DynaBean不是一个HashMap而是一个实实在在的Java类
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值