我采用的你的第二种方案,采用template模式制作一个base action, execute()方法中先调用权限验证,然后再调用子类的方法,大致思路如下:pubic abstract BaseAction extends Action{
    /**
    * 不允许子类覆盖此方法
    * 这个方法是被框架调用的方法,框架不同,方法名称,参数以及返回类型不同
    */
    final public ... execute(...) {
        ... 验证权限
        return doExecute(...);
    }
    
    /**
    *  子action实现这个方法
    */
    abstract protected ... doExecute(...);
}