姿姿霸霸~~!
贵在坚持!
BlogJava
首页
新文章
新随笔
聚合
管理
posts - 106, comments - 50, trackbacks - 0
aop拦截springmvc的action不成功!(已解决)
今天做了个aop的试验,对于springmvc的action不能拦截成功,研究了很久,没有找到问题,所以请教下大家.
下面是代码:
1.springmvc的action:
package
com.sure.demo.web;
import
java.util.Date;
import
javax.servlet.http.HttpServletRequest;
import
javax.servlet.http.HttpServletResponse;
import
org.springframework.web.servlet.ModelAndView;
import
org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public
class
DemoTestAction
extends
MultiActionController
{
//
返回的test页面
private
String testPage;
public
String getTestPage()
{
return
testPage;
}
public
void
setTestPage(String testPage)
{
this
.testPage
=
testPage;
}
/**
* test入口
*
@param
request
*
@param
response
*
@return
*
@throws
Exception
*/
public
ModelAndView test(HttpServletRequest request,
HttpServletResponse response)
throws
Exception
{
ModelAndView mav
=
null
;
mav
=
new
ModelAndView(
this
.getTestPage());
request.setAttribute(
"
test
"
,
new
Date().toString());
return
mav;
}
}
2.jsp代码:
<%
@ page language
=
"
java
"
import
=
"
java.util.*
"
pageEncoding
=
"
gb2312
"
%>
<%
String
test
=
(
String
)request.getAttribute(
"
test
"
);
%>
<!
DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
>
<
html
>
<
head
>
</
head
>
<
body
>
当前时间是:
<%
=
test
%>
<
br
>
</
body
>
</
html
>
3.aop代码:
package
com.sure.aopdemo;
import
org.aspectj.lang.JoinPoint;
public
class
AopDemoTestImpl
{
public
void
afterTest(JoinPoint joinPoint)
{
System.out.println(
"
aop--执行类:
"
+
joinPoint.getThis()
+
"
的
"
+
joinPoint.getSignature().getName()
+
"
方法之后
"
);
}
public
void
beforeTest(JoinPoint joinPoint)
{
System.out.println(
"
aop--执行类:
"
+
joinPoint.getThis()
+
"
的
"
+
joinPoint.getSignature().getName()
+
"
方法之前
"
);
}
public
void
exceptionTest()
{
System.out.println(
"
aop方法异常
"
);
}
}
4.xml关于aop的配置:
<?
xml version="1.0" encoding="UTF-8"
?>
<
beans
xmlns
="http://www.springframework.org/schema/beans"
xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop
="http://www.springframework.org/schema/aop"
xmlns:tx
="http://www.springframework.org/schema/tx"
xsi:schemaLocation
="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd"
>
<
bean
id
="aopDemoTestImpl"
class
="com.sure.aopdemo.AopDemoTestImpl"
></
bean
>
<
aop:config
>
<
aop:aspect
id
="test"
ref
="aopDemoTestImpl"
>
<
aop:pointcut
id
="a"
expression
="execution(* com.sure.demo..*.*(..))"
/>
<
aop:before
method
="beforeTest"
pointcut-ref
="a"
/>
<
aop:after
method
="afterTest"
pointcut-ref
="a"
/>
<
aop:after-throwing
method
="exceptionTest"
pointcut-ref
="a"
/>
</
aop:aspect
>
</
aop:config
>
</
beans
>
posted on 2008-09-22 23:19
xrzp
阅读(7655)
评论(11)
编辑
收藏
所属分类:
JAVA
FeedBack:
#
re: aop拦截springmvc的action不成功!请教~~~~~~
2008-09-23 08:43 |
toby941
spring的Controller方法是不能AOP拦截的
不是有专门的拦截器么
回复
更多评论
#
re: aop拦截springmvc的action不成功!请教~~~~~~
2008-09-23 08:44 |
隔叶黄莺
你的 Action 要是通过 Spring IOC 容器创建的实例才能拦截到。
回复
更多评论
#
re: aop拦截springmvc的action不成功!请教~~~~~~
2008-09-23 11:17 |
sure_xx
@隔叶黄莺
晕,我在配置文件里面,都写了这些bean的.我发个邮件给你看哈.谢谢.
回复
更多评论
#
re: aop拦截springmvc的action不成功!请教~~~~~~
2008-09-23 17:15 |
隔叶黄莺
application-context.xml 中的 aop 配置似乎影响不到 app-servlet.xml,他们不被同时解析处理的,试着把对 controller 的 aop 控制的配置移到 app-servlet.xml 中看看。
回复
更多评论
#
re: aop拦截springmvc的action不成功!请教~~~~~~
2008-09-24 10:21 |
隔叶黄莺
用你发给我的代码,执行没问题:
访问地址:
http://localhost:8080/TestSpring2/demoTest.do?method=test
页面输出:
当前时间是:Wed Sep 24 10:08:55 CST 2008
gavin:抽烟中……
控制台输出:
aop--执行类:com.sure.demo.biz.DemoTestBiz@1887735的testBiz方法之前
执行BIZ..
aop--执行类:com.sure.demo.dao.DemoTestDaoImpl@1fff293的testDao方法之前
执行DAO..testMap
aop--执行类:com.sure.demo.dao.DemoTestDaoImpl@1fff293的testDao方法之后
aop--执行类:com.sure.demo.biz.DemoTestBiz@1887735的testBiz方法之后
你在日志中应该要把问题描述清楚。
回复
更多评论
#
re: aop拦截springmvc的action不成功!请教~~~~~~
2008-09-24 16:32 |
sure_xx
@隔叶黄莺
我的意思是没有拦截到
com.sure.demo.web.DemoTestAction 这个类里面的方法.控制台输出的都是拦截的biz和dao的信息
回复
更多评论
#
re: aop拦截springmvc的action不成功!请教~~~~~~
2008-09-24 17:57 |
隔叶黄莺
从显示那两个对象来看,确实是 Spring Aop 没有对 DemoTestAction 作特殊处理
demoTestBiz
(com.sure.demo.biz.DemoTestBiz$$EnhancerByCGLIB$$5a2f8a7b) com.sure.demo.biz.DemoTestBiz@6ffb14
this
(com.sure.demo.web.DemoTestAction) com.sure.demo.web.DemoTestAction@1155013
回复
更多评论
#
re: aop拦截springmvc的action不成功!请教~~~~~~
2008-09-24 18:52 |
隔叶黄莺
spring mvc 的 HandlerMapping 有自己的 Interceptor,要实现接口 org.springframework.web.servlet.HandlerInterceptor,其中有 preHandle()、postHandle()、afterCompletion() 方法可监视 action 的执行,但在这几个方法中能获取到的信息不详细,但可以用来具体控制 Action 执行前后的行为。假如这个拦截类是
DemoActionHandlerInterceptor,这个实例需要配置给 HandlerMapping,配置方法如下:
<bean id="urlMapping"
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/demoTest.do">demoTest</prop>
</props>
</property>
<property name="interceptors">
<list>
<bean class="com.sure.aopdemo.DemoActionHandlerInterceptor"/>
</list>
</property>
</bean>
回复
更多评论
#
re: aop拦截springmvc的action不成功!请教~~~~~~
2008-09-24 19:49 |
sure_xx
@隔叶黄莺
谢谢黄莺哈!问题解决了!就是像最后写的那样.自己写一个继承了HandlerInterceptor接口的类,然后再在里面重写3个方法就能解决了.
再次谢谢哈!
回复
更多评论
#
re: aop拦截springmvc的action不成功!(已解决)
2008-12-02 11:42 |
娃娃
你成功的代码能否发下出来啊?
回复
更多评论
#
re: aop拦截springmvc的action不成功!(已解决)
2014-07-29 11:35 |
sql吧
楼主最后还有用拦截器的方式解决的??????
spring mvc aop 不可以吗??????
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
hello,架构world
什么是可滚动的ResultSet
按长度分割字符串,遇到中文的处理
同时使用struts2和springMVC需要注意的事项
获取有路径的文件的文件名
小数点后面保留几位的格式
使用tomcat时,在IE中能自动打开excel
使用spring发送邮件
spring配置事务
aop拦截springmvc的action不成功!(已解决)
<
2008年9月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(4)
给我留言
查看公开留言
查看私人留言
随笔分类
db2(2)
JAVA(29)
js(9)
linux/unix(7)
oracle-asm(1)
oracle-rac(5)
oracle-优化(5)
oracle-基础(31)
oracle-备份恢复(16)
存储(2)
随笔档案
2012年4月 (1)
2011年11月 (2)
2011年10月 (13)
2011年9月 (1)
2011年8月 (2)
2011年7月 (2)
2011年6月 (5)
2011年5月 (16)
2011年4月 (3)
2011年1月 (1)
2010年12月 (8)
2010年7月 (1)
2010年6月 (3)
2010年5月 (3)
2010年1月 (1)
2009年9月 (1)
2009年4月 (3)
2009年3月 (1)
2008年10月 (2)
2008年9月 (1)
2008年8月 (3)
2008年7月 (1)
2008年4月 (1)
2008年3月 (1)
2008年2月 (1)
2007年7月 (2)
2007年6月 (1)
2007年5月 (7)
2007年4月 (1)
2007年3月 (2)
2007年1月 (12)
2006年12月 (1)
2006年10月 (3)
好友的blog
霸霸的blog
风风的BLOG
搜索
积分与排名
积分 - 116439
排名 - 500
最新评论
1. re: 解决ORA-00600: 内部错误代码, 参数: [4194], [15], [8][未登录]
谢谢,解决了大问题
--linda
2. re: aop拦截springmvc的action不成功!(已解决)
楼主最后还有用拦截器的方式解决的??????
spring mvc aop 不可以吗??????
--sql吧
3. re: 去除空格的js 和 使用正则表达式替换
dfasfdsa
-- fff fddd
4. re: 什么是table函数(收集)
也就是说,我好不容易达到了你2年前的水平
--Jcat
5. re: db2降低hwm(V9.7)
评论内容较长,点击标题查看
--刘邦
阅读排行榜
1. 解决ORA-30036:无法按8扩展段(18057)
2. 解决ORA-00600: 内部错误代码, 参数: [4194], [15], [8](9759)
3. 去除空格的js 和 使用正则表达式替换(8976)
4. aop拦截springmvc的action不成功!(已解决)(7655)
5. 判断一个JS对象是否为空(6732)
评论排行榜
1. aop拦截springmvc的action不成功!(已解决)(11)
2. 使用spring发送邮件(4)
3. 计算任何一天是星期几的算法(拿来主义)(3)
4. JAVA中日期的问题(3)
5. j2EE中的过滤器的用法(过滤乱码)(2)