没用过这个spirngmvc,想在请求到过Controller的时候,先执行Controller的某个方法,在这个方法里获取request,以对提交的参数进行处理?类似MethodBeforeAdvice这样的AOP拦截,我知道MethodBeforeAdvice可以在某个方法被调用前后做一些事情,但是这个事情与Controller却没有什么关系,也不能将request传到controller里面。

解决方案 »

  1.   

    在配置文件中加方法解析器,如
    <!--方法解析器-->
    <bean id="paraMethodResolver" class=
           "org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
        <property name="paramName">
          <value>method</value>
      </property>
    <!--没写method参数就调用默认的list方法-->
     <property name="defaultMethodName">
     <value>list</value>
    </property>
    </bean>
    调用就用action='你配置的那个action的id?method=你要调用的方法'
      

  2.   


    拦截器吧。 MVC框架的拦截器也可以啊。 Spring的AOP也可以啊。
      

  3.   

    spring的aop可以将request的传数传到我的Controller里面么?请指定一下,最好给两行代码。
      

  4.   

    @Aspect
    @Component
    public class SomeInterceptor {
       @Pointcut("切点表达式你自己写啊")
       public void pc();
       @Around("pc()")
       public Object around(ProceedingJoinPoint jp) throws Throwable {
            Object[] args = jp.getArgs();        // 我不知道你的方法参数什么顺序,假设你的HttpServletRequest是第一个参数
            HttpServletRequest request = (HttpServletRequest) args[0];        // 拿到request,你爱干啥干啥
            //  ...
            return jp.proceed();
       }
    }我随手写的,没有经过验证。 反正大体思路就是这样的啊。
      

  5.   

    多谢指点,另外,我要是想写一些数据进到controller里的属性有没有办法呢?例如我父类Cotroller里有一个Map对象,我想得到request后将一些数据放到这个Map里面去。