动态Actionform:
动态Form本质上来说只是一个普通的form,在struts的框架中,起自定义了一个bean:org.apache.struts.action.DynaActionForm。在这个类中,有一个Hashmap的变量,然后把页面的表单的的值,名称作为key,值作为value来存取。
在通过EL导航时,连接的是map.属性。例如${dynaForm.map.age }
动态ActionForm存在的目的很简单,只是为了简化一些简单的一些简单的ActionForm。毕竟有些时候,一些表单时直接拿过来用的。
struts 文件上传:
在struts的框架中,文件上传被简化的处理了。简单的说,就是表单传过来的文件被封装到了一个org.apache.struts.upload.FormFile中,而Fromfile这个类,就和IO包中的File类一样。
而如果需要配置,怎是在struts中的<controller/>标签配置上传参数,如:<controller maxFileSize="10M"/>。
注册转换器:
表单上的数据都是String类型的数据。然后在进入struts内部时,都经过了转换成相应的类型。其原理前台控制器再被载入时,会调用静态方法ConvertUtils.register()。来注册转换器。使得数据进入时被转换。
利用这一个特性,可以构造自己的转换器。基本的思路是写一个类继承 org.apache.commons.beanutils.Converte这个接口的public Object convert(Class type, Object value) {。
然后在利用struts的plug-in载入。