004.Spring在其他地方獲取當前請求物件

weixin_34148456發表於2017-07-24
    @RequestMapping(value = "info")
    @ResponseBody
    public String getRequestContextInfo() {
        return helloService.getReqInfo();
    }
 public String getReqInfo() {
        //   在service中獲取HttpServletRequest
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
        String info = request.getParameter("name");
        return StringUtils.isEmpty(info) ? "Name is Empty." : "Name is " + info;
    }

當請求為http://localhost:8080/info時,返回Name is Empty.
當請求為http://localhost:8080/info?name=zhangsan時,返回Name is zhangsan

需要注意的是,當mvc方法中注入的request型別為MultipartHttpServletRequest型別時,即檔案上傳時,通過以上方法是獲取不到引數值的。需要將request物件轉為MultipartHttpServletRequet。

相關文章