我的Action 继承DispatchAction我想用spring 拦截器获取被拦截的方法名?现在得到的方法名总是execute,怎么得到action中真实的方法名啊?

解决方案 »

  1.   

    看看你 aop 地方的配置
      

  2.   

    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
    <property name="beanNames">
    <list><value>/customAction</value></list>
    </property>
    <property name="interceptorNames">
    <list><value>authorCustomInter</value></list>
    </property>
    </bean>
    <bean id="authorCustomInter" class="com.psit.struts.action.AuthorityCustomInterceptor"/>
      

  3.   

    execute里面用反射调用的方法 AOP是拦截不到的
      

  4.   

    那有没有什么好的解决方法啊?我现在用的是SSH框架要做权限而且权限还比较细粒。
      

  5.   


    写一个基类继承DispatchAction,重写execute方法,在里面加入你的权限判断逻辑。
    另外还可以考虑在别的地方拦截啊
      

  6.   

    各位帮帮忙啊急~~现在我的Action中有一个方法方法名为showCompanyCusInfo我想用spring的拦截器拦截这个方法并获取到这个方法名,现在得到的方法名总是execute!怎么得到真实的方法名啊?
      

  7.   

    写一个基类继承DispatchAction,重写execute方法,在里面加入你的权限判断逻辑。
    另外还可以考虑在别的地方拦截啊
    [/Quote]简单的说就是我有一个action它继承DispatchAction 里面有对客户资料的增,删,改方法,现在我就想在执行增,删,改方法之前判断该用户是否有这个权限?
      

  8.   

    楼主你去看下DispatchAction的源代码不是啥的明白了
      

  9.   

    我靠,跟你说这么清楚了。struts1所有的action方法调用都先经过execute。DispatchAction里面的execute就是根据method参数的值来调用其它方法的,因为用的反射,aop拦截不到了,你重写execute方法,根据method参数的值和权限配置,没权限直接退出不去调用action方法不就行了。public class BaseAction extends DispatchAction {    public ActionForward execute(ActionMapping mapping, ActionForm form,
    HttpServletRequest request, HttpServletResponse response)
    throws Exception {
            if (isRoleAllow(request)) {
                return super.execute(......);
            } else {
                返回权限出错页面或抛出异常等。        
            }
        }
        
        //检查权限
        protected boolean isRoleAllow(HttpServletRequest request) {
            String method = request.getParamenter(你配置的参数名称);
            ////if ("save".equals(method)) {//假设save是添加}
            ////if ("delete".equals(method)) {//假设delete是删除}        读你的权限表判断当前用户有没有权限返回true或false不就行了
            return ...
        }
    }
      

  10.   


    spring securetiy可以吗?
      

  11.   

    第一次做权限没经验不太清楚怎么做~~先谢啦,一直都想用spring拦截器的~~那我这种情况是不是spring拦截器就不好用啦?