struts许多不为我所知道的内幕
1. formbean,刚学struts的时候总是用ActionForm,页面上的一个属性对应formbean的每个属性,推开属性多少不说,页面多了,每个有增加功能的页面都要对应个formbean,导致很多的actionform;后来结合pojo类和DynaActionForm,在页面上不管要提交多少项数据,很方便了;比如struts-config.xml文件这样写:
<form-bean name="bcDepartmentForm"type="org.apache.struts.action.DynaActionForm">
<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="bcDepartment.cdepname" value='${bcDepartment.cdepname}' dataType="Require" maxlength="20" msg="部门名称是必须的"/>
2.方法的查找,比如要查找某个action下面的方法,在form的action的属性值就是
xxx.do?method=xxxxx
用url传递参数不好,所以可以这样写,就在form标签后面加上这句话,效果一样
<form action="xxx.do" >
<input type="hidden" id="method" name="method" size="21" value="save" />
....
</form>
这样写比用url传参规范些,个人感觉而已
3.第一点用了DynaActionForm,还是要配置属性,麻烦,用LazyValidatorForm更省事
<form-bean name="bcDepartmentForm" type="org.apache.struts.action.LazyValidatorFrom">
</form-bean>,在action类里面要得到页面的数据:
DynaBean bcDepartmentForm = (DynaBean) form;
BcDepartmentForm bcDepartmentForm =(BcDepartmentForm ) wmCheckvouchForm.get("bcDepartment");
<forward name="init" path="/std.jsp"></forward>
</action> 4 楼 cy729215495 2008-09-24 我会经常更新的,好东西大家我是不会独享滴 5 楼 Unmi 2008-09-24 struts 1.3 开始有了一个 LazyValidatorForm,比DynaActionForm还方便,都不用在 struts-config.xml 中配置各个属性就能直接使用。 6 楼 jimichan 2008-09-24 不用struts好多年 7 楼 DAVID YANG01 2008-09-24 struts本身就拥有三层架构,module view controller
但是,在SSH(struts+spring+hibernate)这个j2ee的架构中,struts有可以看作
单一的view。
我感觉struts和spring结合是灵活的,不一定struts就得依靠spring。
也可以在struts-config.xml中配置spring的配置文件
.......... 下班了