近期在动态的表报系统的开发中,用到动态的ActionForm的开发,有一些心得希望和大家分享想:
其实动态的ActionForm我感觉远没有想像的那么好用,虽然没有private的属性,但是还是要Struts-config中定义变量以及变量的类型,估计这也是它没有大量的被采用的原因。用( String ) parseWebActionForm.get ( "treeNode" );来得到页面定义为treeNode的变量的的值。
由于我得页面是动态生成的,所以给页面的属性赋值时,用from.set方法不太好用,暂时还没有找到决绝方法。
在Struts-config中的<form-beans>属性中添加
<form-bean name="parseWebActionForm" type="org.apache.struts.action.DynaActionForm">
<form-property name="buttonType" type="java.lang.String" />
<form-property name="htmlText" type="java.lang.String" />
<form-property name="treeNode" type="java.lang.String" />
</form-bean>
在其对应的action的定义中 validate="false" 默认是true
<action input="/ParseWebLogin.jsp" name="parseWebActionForm" path="/parseWebAction" scope="request" type="com.cims.dss.web.ParseWebAction" validate="false" />
在action中实例化form
DynaActionForm parseWebActionForm = ( DynaActionForm ) form ;
其他操作等同于一般的ActionForm。