struts form bean 生命周期各位看看 两种不同的描述 ,哪个好。

时间:2022-12-24 16:42:38
朋友 给我 说了 一个 他上次 电面 IBM的面试题,我觉得 不好 回答,特意 问问 诸位 高手。

Struts中一个 form bean的生命周期,应该怎么描述。

从网上 找了 两个 说法 


   说法 一  。

       “控制器收到的请求”->“创建或再循环ActionForm”
                          ->“调用reset()“->“正确保存ActionForm”
                          ->“由请求组合ActionForm”
                          ->“验证ActionForm”。如果验证不通过返回到输入,否则调用 Action的execute()方法。   
   说法 二 。 
       
   [align=left]   1首先控制器接受请求,从request或session范围中查找关联的ActionForm,如果不存在就创建它,并调用reset()方 法,然后将其保存到request或session范围中。
2.把用户输入的表单数据封装到ActionForm中。
3.如果action的validate属性为true,则调用ActionForm的validate()方法。
4.如果验证失败,则讲控制转发给action的input属性指定的web组件,其actionForm实例依然保存在request或session中;
如果验证成功,则调用action的execute()方法,将actionForm传递给execute方法,最后将请求转发给其他web组件,actionForm依然存在于request或session中。[/align]    


感觉第二个 说法 和 第一个 不仅是 一个 说的 详细,一个说的简单,意思 好像 都不太一样,该怎么 描述呢?   

9 个解决方案

#1


该回复于2009-10-19 10:40:09被版主删除

#2


第一个简洁,第二个详细
不知道哪个正确,感觉第二个好点

#3



说法 二 。 
      
  
  1首先控制器接受请求,从request或session范围中查找关联的ActionForm,如果不存在就创建它,并调用reset()方 法,然后将其保存到request或session范围中。 
2.把用户输入的表单数据封装到ActionForm中。 
3.如果action的validate属性为true,则调用ActionForm的validate()方法。 
4.如果验证失败,则讲控制转发给action的input属性指定的web组件,其actionForm实例依然保存在request或session中; 
如果验证成功,则调用action的execute()方法,将actionForm传递给execute方法,最后将请求转发给其他web组件,actionForm依然存在于request或session中。

说法2好点

说法2  在孙卫琴写精通struts 173面

只不过书上画的图更详细     说法2没有图  但是步骤都写的很正确

#4


    楼主 的 帖子 出的 好啊。

    我感觉  对这个 生命周期 理解 的也 不是 很透彻,     
    
    不知道 许多人是不是 和我一样,只会简单的 使用,一到 说 起来 就表达 不清了。

    第二种说法 虽然 详细,但是 描述  起来 还真有点 突兀,不知道 有没有  大师 给 你帮下忙。



    

#5


好友,我帮你 顶一下。

#6


说法二了!!不错 啊!!

#7


第二个表达清晰多了!

#8


第二种说法比较合理全面,ActionForm的生命周期应该是随着request的终止和终止的

#9


引用 8 楼 sams_wang 的回复:
第二种说法比较合理全面,ActionForm的生命周期应该是随着request的终止和终止的



我觉得 是 和 action 的 struts-config中scope 的配置有关吧?

比如 session 和 request。

#1


该回复于2009-10-19 10:40:09被版主删除

#2


第一个简洁,第二个详细
不知道哪个正确,感觉第二个好点

#3



说法 二 。 
      
  
  1首先控制器接受请求,从request或session范围中查找关联的ActionForm,如果不存在就创建它,并调用reset()方 法,然后将其保存到request或session范围中。 
2.把用户输入的表单数据封装到ActionForm中。 
3.如果action的validate属性为true,则调用ActionForm的validate()方法。 
4.如果验证失败,则讲控制转发给action的input属性指定的web组件,其actionForm实例依然保存在request或session中; 
如果验证成功,则调用action的execute()方法,将actionForm传递给execute方法,最后将请求转发给其他web组件,actionForm依然存在于request或session中。

说法2好点

说法2  在孙卫琴写精通struts 173面

只不过书上画的图更详细     说法2没有图  但是步骤都写的很正确

#4


    楼主 的 帖子 出的 好啊。

    我感觉  对这个 生命周期 理解 的也 不是 很透彻,     
    
    不知道 许多人是不是 和我一样,只会简单的 使用,一到 说 起来 就表达 不清了。

    第二种说法 虽然 详细,但是 描述  起来 还真有点 突兀,不知道 有没有  大师 给 你帮下忙。



    

#5


好友,我帮你 顶一下。

#6


说法二了!!不错 啊!!

#7


第二个表达清晰多了!

#8


第二种说法比较合理全面,ActionForm的生命周期应该是随着request的终止和终止的

#9


引用 8 楼 sams_wang 的回复:
第二种说法比较合理全面,ActionForm的生命周期应该是随着request的终止和终止的



我觉得 是 和 action 的 struts-config中scope 的配置有关吧?

比如 session 和 request。