请求这个action的时候没有传参
UserForm form1 = (UserForm) actionForm;  UserForm form2 = DB.getMemberById(1);  //数据库取值 form2有内容了BeanUtils.copyProperties(form1, form2);用form2去取数据库 然后再赋给form1 在下一个显示的页面里c:out value='$userForm.realName}有值 不明白为什么非要建2个然后再赋一下 我试了就用form1去接收数据库,但传不到下一个jsp页面。

解决方案 »

  1.   

    在你没有传参 提交action时候 struts 框架帮你做了一个事 就是把你的form1 (execute上传下来的)放到 请求作用域中
    而 form2 没有 . 但是 form1 为空 ,form2 有数据但不在作用域中页面上取不到.  
    所以把form2的值给form1 这样即有了数据 有保证数据在作用域中.
      

  2.   

    其实是这样的:程序设计者把formBean也当做实体Bean(存放数据库取回的数据,)用了
     DB.getMemberById(1);  就是从数据库取数据吧,所以你有此误会。有的设计是单独建立实休Bean,然后再把实体Bean的数据放入FormBean
      

  3.   

    form2不在作用域这个明白了 但我不用form2,用form1接收数据库为什么不行呢 是formBean和实体Bean不能是同一个bean的原因吗
      

  4.   

     因为form1是个FormBean,而不是实体Bean
      

  5.   

    但用form1=DB.getMemberById(1);  form1里确实有值了,而且又是actionForm在作用域,为什么传不到下个页面呢,请高手继续解答啊。
      

  6.   

    UserForm form1 = (UserForm) actionForm;
    此时form1指向了Struts所维护的那个FORM,而:
    form1=DB.getMemberById(1);  是把form1又指向了另一个JavaBean,
    我们要做的事情是让Struts所维护的那个FORM中的数据有所改变,从而可以在JSP等视图中显示等等,所以你说的form1=DB.getMemberById(1);  是不行的