我用已经用拦截器成功拦截了一个请求,在请入之间之后都能捕获(看如下代码),就是不能调用service(已经注入的),也没有异常,求大神帮忙解释下或找下原因,谢谢哈package cn.hq.common.aop;import java.util.Date;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import cn.hq.sport.media.imp.MediaCenterImp;
import cn.hq.sport.media.model.MediaLogModel;public class MediaLogInterceptor extends HandlerInterceptorAdapter
{
@Autowired
private MediaCenterImp mediaCenterImp;
//private static final String[] mediaLogUrl = {"/add_vote.do","/add_video.do"};
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String path = request.getServletPath();
if(path.equals("/add_vote.do"))
{
System.out.println(request.getAttribute("mediaCenterID"));
}
if(path.equals("/add_video.do"))
{

}
return true;
}
@SuppressWarnings("deprecation")
public void afterCompletion(HttpServletRequest request, 
HttpServletResponse response, Object handler, Exception ex)throws Exception {
String path = request.getServletPath();
if(path.equals("/add_vote.do"))
{
System.out.println(request.getParameter("voteTitle")+"afer");
System.out.println(request.getAttribute("mediaCenterID"));
//这之前的都执行,之后的不执行,也没有异常什么的
MediaLogModel log = new MediaLogModel(Integer.parseInt((String) request.getAttribute("mediaCenterID")),1,new Date().toLocaleString(),"管理员","发布投票"); 
mediaCenterImp.addMediaLog(log);
System.out.println("发布投票事件发生");
}
}
}
我测试过,如果把调用service这块东西放到preHandle()方法里,是可以执行的,但是我的需求就是要放到afterCompletion(),或者完成.do之后能触发的方法,怎样做呀,求大神呀