인프런 커뮤니티 질문&답변
HttpHeaders 컨버터
작성
·
343
0
컨트롤러에서 header 값들을 받아서 object로 저장하고 싶습니다.
* Controller.java 의 메소드
convert(@RequestHeader MyHeader myHeader)
* Converter 구현체
implement Converter<HttpHeaders, MyHeader>
로 작성하고해당 converter 구현체를 webConfig에 등록하였는데요.
작동을 하지 않습니다. 혹시 해결 방법이 있을까요?
퀴즈
Spring이 기본 서블릿 요청과 달리 파라미터 타입 변환을 어떻게 편리하게 처리할까요?
수동으로 String을 각 타입으로 변환해야 합니다.
모든 파라미터를 String으로만 받도록 강제합니다.
String으로 받은 파라미터를 필요한 타입으로 자동 변환해 줍니다.
파라미터 타입을 아예 사용하지 못하게 합니다.






* Controller.java 의 메소드
convert(@RequestHeader("header1") MyHeader myHeader)
* Converter 구현체
implement Converter<String, MyHeader>
으로 Converter 로 잘 호출되어 source 로 값이 넘어온 것은 확인했습니다.
그런데, 저는 @RequestBody 처럼 여러 개의 헤더 값들을 한 번에 converter 안에서 하나의 Object에 set 하고 싶은데, 이건 converter 로 불가능한 것일까요?
* Controller.java 의 메소드를 아래와 같은 형태로 받고 싶습니다.
convert(@RequestHeader("header1") MyHeader myHeader,
@RequestHeader("header2") MyHeader myHeader) {
System.out.println(myHeader.getHeader1());
System.out.println(myHeader.getHeader2());
테스트를 해보니 아래와 같이 받아서 Controller 단에서 Object로 변환하는 방법밖에 없겠네요.
convert(@RequestHeader HttpHeaders httpHeaders) {
MyHeader myHeader = new MyHeader();
myHeader.setHeader1(httpHeaders.get("header1").get(0));
myHeader.setHeader2(httpHeaders.get("header2").get(0));