1。如果action要执行execute()方法,就必须继承ActionSupport类吗?
   什么时候要继承ActionSupport类?
2。如果action要执行自定义方法,还有必要ActionSupport类吗?不继承也可以吧?

解决方案 »

  1.   

    Struts2的action主要有两种方式:
    1.实现Action 接口 (implements Action)
    2.继承ActionSupport类 (extends ActionSupport)可能是因为  ActionSupport多了一些功能,比如验证实际上继承ActionSupport之后 就等同于实现了很多接口 Action,Validateable,ValidationAWare,TextProvider,LoacalProvider,Serializable可以提供数据校验 序列化 国际化等功能
    当然 如果不继承ActionSupport 而是自己实现上述接口 效果也是一样的.继承ActionSupport只是为了一次性实现多个接口方便而已.就给你说简单一点,你继承ActionSupport之后。有很多相关的方法都加载进来,你直接调用就行了,而且在安全上和稳定性上做了很好的处理。
      

  2.   

    不一定要继承ActionSupport类,只要实现Action接口就行了。就是要提供接口方法execute().当然也可以用其它的方法名,可以灵活动态配置。关键是要提供struts2的回调方法。具体可以看一看Struts2 in Action这本书,讲的明白易懂。
      

  3.   

    实际上继承ActionSupport之后 就等同于实现了很多接口 A……
      

  4.   

    说的很对,第三种方法就是一个单独的JavaBean只要实现了execute方法就可以了。