【发布时间】:2013-05-14 16:11:17
【问题描述】:
我有以下拦截器:
@Component
public class ExternalLinkInterceptor extends HandlerInterceptorAdapter {
private static final Logger logger = Logger.getLogger(ExternalLinkInterceptor.class);
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
logger.info("preHandle ~ invoked");
}
}
它应该在以下控制器方法的请求句柄之前拦截:
@Controller
@PreAuthorize("isAuthenticated()")
@RequestMapping("/assay/process")
public class VariantPrioritizationsController extends AssayBaseController{
private static final Logger logger = Logger.getLogger(VariantPrioritizationsController.class);
@RequestMapping("/openAnalyticalProjectForAssay")
public ModelAndView openAnalyticalProjectForAssay(HttpSession session,@RequestParam(value = "analyticalProjId", required=true)String projectId) throws PanDaApplicationException{
//code
}
}
这是 spring-servlet.xml 中的拦截器声明:
<mvc:interceptors>
<mvc:interceptor>
<mvc:mapping path="/assay/process/openAnalyticalProjectForAssay*"/>
<beans:bean class="com.syngenta.panda.web.mvc.interceptor.ExternalLinkInterceptor"/>
</mvc:interceptor>
</mvc:interceptors>
现在我的拦截器从未被调用,我不知道为什么?!任何帮助
【问题讨论】:
标签: java spring spring-mvc interceptor