开发者社区 问答 正文

Spring mvc HandlerInterceptor 怎样获取 rest 参数值

怎样能在拦截器中得到 itemId的值 如: /page/1231231.htm。itemId = 1231231

1、配置 拦截器

<mvc:interceptor>
    <mvc:mapping path="/detail/**" />
    <ref local="itemDetailInteceptor" />
</mvc:interceptor>
 
<bean id="itemDetailInteceptor"
class="*.Interceptor.ItemDetailInterceptor"></bean>

2、Controller 

@RequestMapping(value = "page/{itemId}", method = { RequestMethod.GET })
    public String page(HttpServletRequest req, HttpServletResponse resp, @PathVariable long itemId, Model view) throws Exception {
}
3、HandlerInterceptor


@Override
    public boolean preHandle(HttpServletRequest request,
            HttpServletResponse response, Object handler) throws Exception {
                //accessUri   ==   "/page/1231231.htm"
        String accessUri = request.getRequestURI();
        HandlerMethod detailHandlerMethod = (HandlerMethod)handler;
        MethodParameter parameter =  detailHandlerMethod.getMethodParameters()[2];
        log.info("access uri:" + accessUri <span></span>);
        return true;
    }

展开
收起
a123456678 2016-03-17 09:36:29 5727 分享 版权
1 条回答
写回答
取消 提交回答
  • 1、首先确保你的inteceptor可以拦截你的请求(path是否正确)

    2、参数保存在request里面吧

    2019-07-17 19:04:30
    赞同 展开评论