首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

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

2012-11-17 
struts许多不为我所知道的内幕1. formbean,刚学struts的时候总是用ActionForm,页面上的一个属性对应formbe

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的配置文件
.......... 下班了

热点排行