网上看了文章说 action接受请求后会先找scope范围内的form,若不存在则自动创建,再调用form的reset方法。
---------------------------------------------------------------------------------------
reset方法应该是在找到的情况下才调用

解决方案 »

  1.   

    to onray(39度) :
      无论actionform的实力是否存在,reset方法都要调用的to  humanity(骷髅也跳舞):
      可以用日志察看程序调用的顺序吗?
      

  2.   

    注意,在你使用scope="request"和scope="session"的时候,reset是有所区别的。用session的时候一定要用reset。先看看你的设置类型是什么
      

  3.   

    说老实话偶对formbean还真没什么研究,我一直觉得这个东西是毫无意义的,对我而言,是因为structs规定了,我不得不用,但是我只是把它当作javabean来用,至于validate和reset,偶是从来都不想用的,如果要用,就在action中为formbean手工赋值了,校验数据是页面上用js判断一下,然后服务器端在action中校验,然后用异常抛出。这实际上已经违背structs的formbean的本意了,呵呵。不过这样的话也方便些,至少以后移植的时候我可以顺利把formbean扔掉。呵呵,偶的formbean是干干净净,除了setter和getter,别的什么都没有,一个典型的structs新手上路型。
      

  4.   

    to mxlmwl(飞星) 
    我两个form都是request
      

  5.   

    你改用session再试试看,也就是改用配置文件默认的方式,我记得用session是可以的。我没研究过structs的代码,但感觉session和reset一起用的情况比较多些。
      

  6.   

    我一般都用动态ActionForm,连JavaBean都懒得写,所以也没有用到reset()。
      

  7.   

    reset没有深入研究过,它是在提交表格出现错误后(在表单页使用<html:errors/>收集错误),表单内容将根据你在ActionForm Bean的reset方法中的设定重置。
      

  8.   

    一般不太用reset进行预设数据,你可以在进入jsp之前调用一个action,在那里为form赋值,并且在struts-config.xml中将这个action与form对应,放在request或session中
      

  9.   

    谢谢
    snowwolf_wei() ( ) 信誉:100