请问,spring3.0的mvc如何在请求到来前调用Controller的某个方法

myDownload168 2011-04-13 08:24:35
没用过这个spirngmvc,想在请求到过Controller的时候,先执行Controller的某个方法,在这个方法里获取request,以对提交的参数进行处理?类似MethodBeforeAdvice这样的AOP拦截,我知道MethodBeforeAdvice可以在某个方法被调用前后做一些事情,但是这个事情与Controller却没有什么关系,也不能将request传到controller里面。
...全文
477 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
myDownload168 2011-04-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yingzhuo2011 的回复:]

@Aspect
@Component
public class SomeInterceptor {
@Pointcut("切点表达式你自己写啊")
public void pc();
@Around("pc()")
public Object around(ProceedingJoinPoint jp) throws Throwable {
……
[/Quote]
多谢指点,另外,我要是想写一些数据进到controller里的属性有没有办法呢?例如我父类Cotroller里有一个Map对象,我想得到request后将一些数据放到这个Map里面去。
yingzhuo2011 2011-04-18
  • 打赏
  • 举报
回复
@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();
}
}

我随手写的,没有经过验证。 反正大体思路就是这样的啊。
myDownload168 2011-04-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 yingzhuo2011 的回复:]

引用 2 楼 mydownload168 的回复:

你这个是根据参数调用指定的方法,跟我说的调用某个方法前先调用其它方法,不是一回事吧?


拦截器吧。 MVC框架的拦截器也可以啊。 Spring的AOP也可以啊。
[/Quote]
spring的aop可以将request的传数传到我的Controller里面么?请指定一下,最好给两行代码。
yingzhuo2011 2011-04-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mydownload168 的回复:]

你这个是根据参数调用指定的方法,跟我说的调用某个方法前先调用其它方法,不是一回事吧?
[/Quote]

拦截器吧。 MVC框架的拦截器也可以啊。 Spring的AOP也可以啊。
myDownload168 2011-04-13
  • 打赏
  • 举报
回复
你这个是根据参数调用指定的方法,跟我说的调用某个方法前先调用其它方法,不是一回事吧?
  • 打赏
  • 举报
回复
在配置文件中加方法解析器,如
<!--方法解析器-->
<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=你要调用的方法'

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧