使用表单是网页里面经常遇到的事情.利用struts的标签可以很好的完成这一功能.在struts中表单分为两种.一种是ActionForm..另外一种是DynaActionForm.所谓动态是在使用表单时不需要创建对就的bean文件.ActionForm很简单,在此只说说DynaActionForm.因为在这个小项目中在很多的用户输入.数据验证部分我放到了Action中进行.于是在表示层Form中只是接收数据.用DynaActionForm实现是个很好的选择.
DynaActionForm提供了一种方便的机制,从根本上消除了编写ActionForm的需要。DynaActionForm可允许动态的表单属性。这意味着你能够在你的struts-config.xml文件中定义属性并且将表单类型设置为org.apache.struts.action.DynaActionForm。什么都不需要写。DynaActionForm使用Apache公共项目中的DynaBean完成这些操作。这一动态的行为是通过反射(reflection)与哈希图(Hashmaps)提供的。
index.jsp




























这个页面中和使用静态表单没什么区别,只是在struts-config.xm配置稍微有些不同.







对应此表单的Action的配置:








和ActionForm的不同之处还在于在Action中获取提交的参数时要将ActionForm强制转换为DynaActionForm:

如何获取各参数如下:































动态表单有很多优点.比如可以实现跨页的表单提交.还过也有缺点比如此时它就不能将validate框架集成到里面.有个方法就是可心自己继承DynaActionForm类在其中添加validate方法.再将实际的应用中的Form继承此类.不过此时的将失去使用DynaActionForm的灵活性.只好自己权衡了。