-
Spring Web MVC - ViewResolver백기선(인프런 강의)/스프링 부트 개념과 활용 2020. 4. 22. 12:28반응형
ContentNegotiatingViewResolver
ViewResolver 중에 하나로, 들어오는 요청의 accept header( 클라이언트가 서버에게 원하는 응답을 요청하는 것 )에 따라 응답이 달라진다.
어떤한 요청이 들어오면 그 요청의 응답을 만들 수 있는 모든 view를 찾아내고, 최종적으로 accept header의 view 타입과 비교하여 선택한다.
accpet header가 없는 요청인 경우 format이라는 매개변수를 사용한다.
@RunWith(SpringRunner.class) @WebMvcTest(SrpingController.class) public class SrpingControllerTest { @Autowired MockMvc mockMvc; @Test public void createuser_XML() throws Exception { String userJson = "{\"name\": \"jinSeok\", \"age\": \"30\"}"; mockMvc.perform(post("/user/create") .contentType(MediaType.APPLICATION_JSON_UTF8) .accept(MediaType.APPLICATION_XML) .content(userJson)) .andExpect(status().isOk()) .andExpect(jsonPath("$.username", is(equals("jinSeok")))) .andExpect(jsonPath("$.age", is(equals("30")))); } }
controller User class 등을 볼라면 아래 글 보기
2020/04/22 - [백기선 Spring/스프링 부트 개념과 활용] - Spring Web MVC -HttpMessageConverters
만약 506 erorr 가 발생하면 HttpMessageConverter 가 없기 때문이다. pom.xml에 아래의 의존성을 추가하자
<dependency> <groupId>com.fasterxml.jackson.dataformat</groupId> <artifactId>jackson-dataformat-xml</artifactId> <version>2.9.6</version> </dependency>
반응형'백기선(인프런 강의) > 스프링 부트 개념과 활용' 카테고리의 다른 글
웹 jar (0) 2020.05.06 정적 리소스 지원 (0) 2020.05.05 Spring Web MVC -HttpMessageConverters (0) 2020.04.22 Spring-Boot-Devtools (0) 2020.04.21 테스트 (0) 2020.04.16