如何使用DynaActionForm

如何使用DynaActionForm?
1.在struts-config.xml中:
<form-bean name="uploadForm" type="org.apache.struts.action.DynaActionForm"> 
    <form-property name="upload" type="org.apache.struts.upload.FormFile"/> 
    <form-property name="url" type="java.lang.String"/>
    <form-property name="desc" type="java.lang.String"/>
</form-bean>

2.JSP在使用taglib没有变化;

3.在Action中使用DynaActionForm时需要注意:
DynaActionForm edFrm=(DynaActionForm)form;
String name= (String)edFrm.get("name");

4.直接使用DynaActionForm,会使使用者丧失使用validate和reset的机会,此时就需要从DynaActionForm
派生出一个子类,然后覆盖validate、reset方法。在派生类中检索属性,使用:this.get("...")

如何创建一个DynaActionForm对象?
答:这种情况出现在通过一个列表选择,然后加载被选择的对象并在细节窗体中显示。此时,不能直接创建DynaActionForm。否则,在使用DynaActionForm的set方法会抛出空指针异常。正确的方法例子:
DynaActionForm edFrm= (DynaActionForm)request.getAttribute( mapping.getAttribute());
......
edFrm.set( "id", new Integer(ur.getId()));
edFrm.set( "name", ur.getName());
edFrm.set( "pwd1", ur.getPassword());
edFrm.set( "pwd2", ur.getPassword());
......
request.setAttribute( mapping.getAttribute(), edFrm);

究其原因是通过new创建的DynaActionForm中并不包含任何属性,在set时找不到当然就是空指针异常啦。
阅读更多
个人分类: struts
上一篇native2ascii-本地码-至-ASCII 码转换器
下一篇java.util包
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭