现在的位置: 首页 > 综合 > 正文

如何使用DynaActionForm

2013年10月06日 ⁄ 综合 ⁄ 共 1028字 ⁄ 字号 评论关闭
如何使用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时找不到当然就是空指针异常啦。

【上篇】
【下篇】

抱歉!评论已关闭.