在Spring控制器中将所有@RequestHeader键值作为Map访问

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (96)

我试图找到方法,我可以将@RequestHeader注释中的所有Key值填充到Map中。我试图谷歌它,但我能找到的是一种方法将每个键值映射到一个参数。

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class HelloController {

    @RequestMapping(value = "/hello.htm")
    public String hello(@RequestHeader(value="User-Agent") String userAgent)

        //..
    }
}

但我希望实现这样的目标。

@RequestHeader Map headerParam;

这样我就可以遍历Map并根据需要使用所有头值。

提问于
用户回答回答于

你可以做到以下几点-

@RequestMapping(value = "/hello.htm")
public String hello(@RequestHeader HttpHeaders httpHeaders){
    Map<String,String> headerMap=httpHeaders.toSingleValueMap();
    //TODO httpHeaders will have many methods
}
用户回答回答于
@Controller
public class HelloController {

    @RequestMapping(value = "/hello.htm")
    public String hello(@RequestHeader final Map<String, String> headerMap)

        //..
    }
}

扫码关注云+社区

领取腾讯云代金券