1、ActionForm是静态的Form,如果你的form中的内容不变化的话就用ActionForm,如果常变化的话就用DynaActionForm
3、用validate检验客户短的数据是否合法(如电子邮件格式是否正确),一般在配置文件中配置,对业务数据的检查放到Action中进行
4、ejb并不一定非用DTO,只是dto方便一点。实在不行就从Form中提取数据然后手动生成dto对象

解决方案 »

  1.   

    我不是高手。
    第1、3两个问题,网上应该有不少的讨论和文章,搜索以下google,
    我理解,使用DynaActionForm不需要写一个一个的form类,只需要在struts-config.xml文件中配置,就像这个样子:
    <form-bean name="logonForm" type="org.apache.struts.action.DynaActionForm">
      <form-property name="username" type="java.lang.String"/>
      <form-property name="password" type="java.lang.String"/>
    </form-bean>
    呵呵,你看了很多书,这个肯定知道的,至于验证,我比较喜欢validate配置,
    用dto,BeanUtils.copyProperties()应该是最好的选择,只好想方设法让dto和formbean属性访问器使用相同的命名约定,难道你想一个属性一个属性的操作?
      

  2.   

    同意 javacomte(基督山伯爵)的说法另外
    没有用过动态的formbean请问楼上怎么用 ?关注
      

  3.   

    呵呵,刚学struts不久,只能谈谈第3条的看法:我的判断一般都是action中进行的,因为利用formbean里的validate进行判断返回的页面是一个固定的、相对独立的action或jsp页面,而当action中部分参数是接收上一步的传值或不是独立的情况下,验证方法及返回页面最好还是在action里做~~~~个人观点~~望高手指教~~
      

  4.   

    DynaForm不要写formbean类了,直接在Struts-config里配置,tjchen写的很清楚了
    补充一下下
    DynaForm
    String username = form.get("username");
    静态的Form
    String username = form.getUsername();