姿姿霸霸~~!
贵在坚持!
BlogJava
首页
新文章
新随笔
聚合
管理
posts - 49, comments - 39, 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
sure_xx
阅读(1603)
评论(10)
编辑
收藏
所属分类:
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 |
娃娃
你成功的代码能否发下出来啊?
回复
更多评论
新用户注册
刷新评论列表
IT新闻:
·
VC为何盯上“谷歌帮”?
·
市场预计苹果iPad初期销量无法超越iPhone
·
雅虎首席技术专家加盟风投 高管离职潮又起
·
乔布斯首谈接受肝脏移植细节 自称几乎死去
·
摩托罗拉尝试复兴 欲用社交手机实现东山再起
专题:
Android
iPad
jQuery
Chrome OS
博客园首页
IT新闻
知识库
学英语
Java程序员招聘
标题
姓名
主页
验证码
*
内容(请不要发表任何与政治相关的内容)
Remember Me?
登录
[使用Ctrl+Enter键可以直接提交]
每天10分钟,轻松学英语
推荐职位:
·
飞信服务器端高级.NET开发工程师(新媒传信)
·
.NET飞信官网开发工程师(新媒传信)
·
.NET技术开发总监(广州衣酷)
·
ASP.NET资深工程师 (盛大网络)
·
.NET初级程序员 (北京安人)
·
.NET中级程序员 (北京安人)
·
中高级.NET工程师(沪江网)
·
前端开发工程师(沪江网)
博客园首页随笔:
·
web平台动态页面自动生成静态网页中包含的外部页面的四种办法
·
使用fancy slide在drupal中添加幻灯图片效果
·
玩蛇记-使用tornado构建高性能Web应用之一
·
restart ASP.NET(2)
·
网站测试自动化系统—在测试代码中硬编码测试数据
知识库:
·
让敏捷与“以用户为中心的设计”和谐共生
·
Apple、Google 之战渐显个人色彩
·
闾丘露薇:参观两间“小”公司
·
你不是IT菜鸟系列
·
Go语言
网站导航:
博客园
IT新闻
个人主页
博客生活
IT博客网
C++博客
博客园社区
管理
相关文章:
按长度分割字符串,遇到中文的处理
同时使用struts2和springMVC需要注意的事项
获取有路径的文件的文件名
小数点后面保留几位的格式
使用spring发送邮件
spring配置事务
aop拦截springmvc的action不成功!(已解决)
dom4j写文件并设置encoding
部署应用到jboss的一些问题
尝试下数据连接池
<
2008年12月
>
日
一
二
三
四
五
六
30
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
31
1
2
3
4
5
6
7
8
9
10
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
JAVA心得(27)
js(9)
其他(4)
数据库(8)
路漫漫(11)
随笔档案
2010年1月 (1)
2009年9月 (1)
2009年4月 (3)
2009年3月 (1)
2008年10月 (2)
2008年9月 (1)
2008年8月 (4)
2008年7月 (1)
2008年4月 (1)
2008年3月 (1)
2008年2月 (1)
2007年7月 (2)
2007年6月 (2)
2007年5月 (7)
2007年4月 (1)
2007年3月 (2)
2007年1月 (12)
2006年12月 (1)
2006年11月 (1)
2006年10月 (4)
好友的blog
霸霸的blog
风风的BLOG
搜索
积分与排名
积分 - 19930
排名 - 680
最新评论
1. re: 判断一个JS对象是否为空
var data = [{
"chidren" : {}
}];
data[0].chidren,这种情况就无法判断了。
--m4
2. re: 判断一个JS对象是否为空
var data = [{
"chidren" : {}
}];
data[0].chidren,这咱情况不能判断。
--m4
3. re: 使用tomcat时,在IE中能自动打开excel
你好,我也遇到了这个问题,请问你是怎么解决的呀。我用了你这个也不可以呀。
--miuchen
4. re: 按长度分割字符串,遇到中文的处理
好久没更新咯
--Jcat
5. re: aop拦截springmvc的action不成功!(已解决)
你成功的代码能否发下出来啊?
--娃娃
阅读排行榜
1. 判断一个JS对象是否为空(1806)
2. 使用spring发送邮件(1630)
3. aop拦截springmvc的action不成功!(已解决)(1603)
4. 去除空格的js 和 使用正则表达式替换(1592)
5. 用jxl读取EXCEL的内容(1297)
评论排行榜
1. aop拦截springmvc的action不成功!(已解决)(10)
2. 使用spring发送邮件(4)
3. 计算任何一天是星期几的算法(拿来主义)(3)
4. JAVA中日期的问题(3)
5. j2EE中的过滤器的用法(过滤乱码)(2)