在多个Action中有验证身份需求,不想重复地写,而现有Action又是从不同Action类中继承的(DispatchAction/Action)。在C++中可以用多重继承解决,JAVA下想复用又不能从不同类中继承,实现多个接口在这好像也用不上,不知有什么好的方法。

解决方案 »

  1.   

    我能够想到的方法:
    1. 使用filter来实现身份验证
    2. 使用AOP来实现
      

  2.   

    做个BaseAction 继承Action 把验证代码写在里面然后所有的action继承这个baseAction 就可以了
      

  3.   

    Java中弥补多重继承的方式是实现多个接口
      

  4.   

    JAVA中的多层继承是用接口实现的~
    建议LZ可以将验证方法写到一个工具类里面
    或写一个BaseAction 类也不错,不过LZ的情况是已经不能再继承了.
      

  5.   

    因为本身从不同Action类中继承的(DispatchAction/Action...),所以BaseAction不太用得上,总不能定义多个。用接口如何实现?
    另外,AOP好像是个办法,研究下。
      

  6.   

    use composition
    separate your reusable code and custom code.
      

  7.   

    使用 继承的组合或实现接口,详情,请参考Think in Java
    将的很好
      

  8.   

    可以使用内部类 实现类似多继承
    或者 用 delegate
      

  9.   

    java本来不支持多重继承,但是可以实现多个接口
      

  10.   

    AOP确实是一种实现方法,结合Spring及acegi可以实现我的需求。
    但acegi跟项目的粘性太大,特别是数据库表部分需要根据项目修改,使用成本太高了些。现在还是用回老方法,用多个BaseAction继承,土了点:)
    等将来做大项目时再考虑Acegi之类的实现。
    谢谢大家~