struts许多不为我所知道的内幕

1. formbean,刚学struts的时候总是用ActionForm,页面上的一个属性对应formbean的每个属性,推开属性多少不说,页面多了,每个有增加功能的页面都要对应个formbean,导致很多的actionform;后来结合pojo类和DynaActionForm,在页面上不管要提交多少项数据,很方便了;比如struts-config.xml文件这样写:
<form-bean name="bcDepartmentForm"type="org.apache.struts.action.[color=red]DynaActionForm[/color]">
<form-property name="pk" type="java.lang.String" />
<form-property name="query" type="java.lang.String" />
<form-property name="pks" type="java.lang.String[]"/>
<form-property name="pageno" type="java.lang.Integer" />
<form-propertyname="bcDepartment" type="com.hust.bc.model.BcDepartment" />
</form-bean>

在页面上只需在每个属性的前面加上bcDepartment,形如:

部门名称 : <input name="bcDepartment.cdepname" id="[color=red]bcDepartment.cdepname[/color]" value='${bcDepartment.cdepname}' dataType="Require" maxlength="20" msg="部门名称是必须的"/>

2.方法的查找,比如要查找某个action下面的方法,在form的action的属性值就是
xxx.do?method=xxxxx
用url传递参数不好,所以可以这样写,就在form标签后面加上这句话,效果一样
<form action="[color=red]xxx.do[/color]" >
<input type="hidden" id="method" name="[color=red]method[/color]" size="21" value="[color=red]save[/color]" />

....
</form>
这样写比用url传参规范些,个人感觉而已

3.第一点用了DynaActionForm,还是要配置属性,麻烦,用LazyValidatorForm更省事
<form-bean name="bcDepartmentForm" type="org.apache.struts.action.[color=red]LazyValidatorFrom[/color]">
</form-bean>,在action类里面要得到页面的数据:
[color=red]DynaBean [/color]bcDepartmentForm = (DynaBean) form;
BcDepartmentForm bcDepartmentForm =(BcDepartmentForm ) wmCheckvouchForm.get("bcDepartment");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值