강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

sonbbang님의 프로필 이미지
sonbbang

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

스프링에 Converter 적용하기

HttpHeaders 컨버터

작성

·

342

0

컨트롤러에서 header 값들을 받아서 object로 저장하고 싶습니다.

* Controller.java 의 메소드

convert(@RequestHeader MyHeader myHeader)

* Converter 구현체

implement Converter<HttpHeaders, MyHeader>

로 작성하고해당 converter 구현체를 webConfig에 등록하였는데요.

작동을 하지 않습니다.  혹시 해결 방법이 있을까요? 

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. sonbbang님

어떤 헤더를 사용해서 컨버팅 할지 이름을 넣어주셔야 합니다.

@RequestHeader("헤더이름") MyHeader myHeader

감사합니다.

sonbbang님의 프로필 이미지
sonbbang
질문자

* 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));

김영한님의 프로필 이미지
김영한
지식공유자

네 여러 개의 헤더 값들을 한번에 처리하는 것은 어려울 것 같아요.

혹시 방법을 찾으면 공유해주세요.

감사합니다.

sonbbang님의 프로필 이미지
sonbbang

작성한 질문수

질문하기