ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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
Designed by Tistory.