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

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");
1 楼 spiritfrog 2008-09-23  
第二种,不是要提交表单了吗?只是一个链接而已, 为何要提交表单。
2 楼 xiaoZ5919 2008-09-23  
标题很大 内容不丰富
3 楼 villain564 2008-09-23  
lanniao 写道

是呀 为什么要提交表单呀 www.zmov.net

在action的配置文件中已经设置parameter="method"
就像这样
<action path="/stdM" name="stdForm" parameter="method" type="com.hzu.web.action.StdManagerAction" input="/login.jsp" validate="false">
    <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的配置文件
.......... 下班了