浏览 2116 次
锁定老帖子 主题:struts1.2各种form详解
该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-09-20
最后修改:2009-09-21
用配置代替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类 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |